我是一个完全 Angular 菜鸟,并试图在其中创建一个简单的测试应用程序。我想部分读出一些用户数据。用户数据位于我的事件 Controller 中。通过路由 Controller 导航到 #/new 后,我将事件 Controller 分配给 new.html 部分中的表单。
尝试循环访问我的部分中的用户时出现的错误是“错误:ngRepeat:iexp无效表达式”。我不知道如何通过这些用户进行 ng-repeat。
有什么想法吗?
我的index.html:
<div class="container" style="width: 500px; margin: 0 auto;">
<ul class="nav nav-pills" ng-controller="NavigationController as navigationCtrl">
<li ng-class="{active: navigationCtrl.isActive(1)}">
<a href="#/">Home</a>
</li>
<li ng-class="{active: navigationCtrl.isActive(2)}">
<a href="#/new">Nieuw</a>
</li>
<li ng-class="{active: navigationCtrl.isActive(3)}">
<a href="#/another">Nog een</a>
</li>
</ul>
<div ng-view></div>
</div>
我的 new.html 部分
<form action="" ng-controller="EventController as event">
<div ng-repeat="users as user">
<label>Name</label>
<input type="text" class="form-control" name="name" ng-model="user.name">
<br>
<label>Emailaddress</label>
<input type="email" class="form-control" name="email" ng-model="user.email">
<br>
<input class="btn btn-default" type="submit" ng-click="event.addEvent($event)" value="Klik">
</div>
</form>
最后:我的 Angular 代码
(function () {
var app = angular.module('testApp', ['ngRoute']);
app.controller('NavigationController', ['$scope', '$route', function ($scope, $route) {
$scope.$route = $route;
this.activeTab = 1;
this.setActiveTab = function (tab) {
this.activeTab = tab;
};
this.isActive = function (tab) {
if ($route.current && $route.current.activeTab) {
return $route.current.activeTab === tab;
}
return false;
};
}]);
app.controller('EventController', ['$scope', '$controller', function ($scope, $controller) {
this.users = [
{name: 'aa'},
{name: 'bb'}
];
this.addEvent = function (e) {
e.preventDefault();
console.log(this);
};
}]);
app.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/new', {
templateUrl: 'partials/new.html',
controller: 'NavigationController',
activeTab: 2
}).
when('/another', {
templateUrl: 'partials/another.html',
controller: 'NavigationController',
activeTab: 3
}).
otherwise({
redirectTo: '/',
controller: 'NavigationController',
activeTab: 1
});
}]);
})();
我尝试为 $scope 更改此设置,但无济于事。
最佳答案
您在 new.html
部分页面中以错误的方式编写了 ng-repeat
应该是这样的
new.html
<div ng-repeat="user in users">
关于javascript - ng-repeat 抛出无效表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34174452/