javascript - ng-repeat 抛出无效表达式

标签 javascript angularjs angularjs-ng-repeat

我是一个完全 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/

相关文章:

javascript - 在javascript中可以使用css3线夹吗?

angularjs - 使用 Protractor 测试 angularjs 应用程序,当我使用它时数组发生变化时,我如何保持对 element.all 行之一的引用?

javascript - 无法在 angularjs 中显示名称和对 json 数据执行编辑?

angularjs - 如何更改任一指令的所有指令范围值?

angularjs - Angular 与微数据

javascript - 使用 React 创建可嵌入的小部件

javascript - Jquery动态列表项选择第一个过滤的搜索项

javascript - 拖放选择插件

javascript - 测试完成后我应该在作用域上调用 $destroy 吗?

javascript - 将局部变量传递给 AngularJs 中的指令