为什么控制器中的数组赋值会破坏Angular代码?

时间:2015-10-19 18:54:49

标签: javascript arrays angularjs binding

这更像是一个概念性问题。我有以下HTML页面:

的index.html

<!doctype html>
<html ng-app="myApp">

    <head>
        <title>Angular Page</title>
        <script src="angular.min.js"></script>
        <script src="app.js"></script>
    </head>

    <body>
        <div ng-controller="myController">
            {{ greeting }}
        </div>
    </body>

</html>

如果所有文件位于目录的根目录,我还有以下JS文件:

app.js

var app = angular.module('myApp', []);
app.controller('myController', function($scope) {
    $scope.greeting = "Hello";
}

当这个运行时,我当然会收到问候语&#34;你好&#34;在HTML页面上。

但是,当我尝试将对象(对于将来的ng-repeat元素)附加到同一个控制器时:

var app = angular.module('myApp', []);
app.controller('myController', function($scope) {
    $scope.greeting = "Hello";

    $scope.users = [
        {
            "name": "Michael",
            "industry": "Music"
        },
        {
            "name": "Michael",
            "industry": "Boxing"
        },
        {
            "name": "Michael",
            "industry": "Basketball"
        }
    ];
}

Angular绑定被破坏,而不是问候&#34; Hello&#34;,我收到了{{name}}表达式。 (在&#39;用户对象分配中使用或不使用尾部分号。)

我的对象分配是否导致我的Angular代码中断?我不太确定如何解释发生的事情。

1 个答案:

答案 0 :(得分:1)

@dfsq在某处帮助其他人,所以他无法回答这个问题。

问题是在将一个数组对象插入我的Angular&#39; myController&#39;之后,页面上的表达式的双向绑定被破坏了。

我在服务器上使用命令行(SSH)中的nano来编辑文件,并且无法轻易看到数组中的一个键值对

("key": "value") 

有逗号而不是冒号

("key","value)

所以它抛出了以下错误:

Uncaught SyntaxError: Unexpected token ,

问题是,我可以使用浏览器上的开发人员工具来检查控制台日志。 @dfsq建议这样做,在查看控制台日志之后,很容易看到抛出的错误以及究竟是哪一行抛出它。

再次感谢,@ dfsq