Angular JS范围变量不起作用

时间:2014-11-23 08:34:11

标签: javascript html angularjs

学习使用angularJS,

我的index.html中有这个特殊的代码。动态类型在上部工作,但注入不起作用。可能出了什么问题?

代码:

<!DOCTYPE html>
<html>
   <head>
      <title>Test1</title>
   </head>
   <body ng-app="">
<!-- Dynamic Type -->

      <input type="text" ng-model="name1" /><br>
      <h1>Hello {{name1}}</h1>

<!-- End dynamic Type -->

 <!-- Scope Injection begin-->
      <div class="container" ng-controller="myController">
         <input type="text" ng-model="naam" /><br>
         <h3>Looping</h3>
         <ul>
            <li data-ng-repeat="cust in customerlist | filter:naam | orderBy:'city'"> {{cust.name | uppercase}} - {{cust.city}} </li>
         </ul>
      </div>
      <script type="text/javascript" src="js/angular.min.js"></script>
      <script type="text/javascript">
         function myController ($scope) {

             $scope.customerlist = [
             {name: 'Raj Bannerjee', city: 'Zaire'},
             {name: 'Prasun Bannerjee', city: 'Udaipur'},
             {name: 'Raj Malhotra', city: 'Dubai'},
             {name: 'Prasun Joshi', city: 'Mumbai'}
             ];

         }

      </script>
   </body>
</html>

1 个答案:

答案 0 :(得分:3)

使用全局控制器构造函数从版本1.3角度禁用:

https://github.com/angular/angular.js/commit/3f2232b5a181512fac23775b1df4a6ebda67d018

  

除了简单的演示之外,使用全局变量没有帮助   对于控制器构造函数。这增加了一种新方法   $controllerProvider重新启用旧行为,但禁用此功能   默认情况下功能。

     

BREAKING CHANGE:$controller将不再寻找控制器   window。查看window控制器的旧行为是   最初打算用于示例,演示和玩具应用程序。我们找到   允许全球控制器功能鼓励不良做法,   所以我们决定默认禁用此行为。

所以你必须像这样重构它:

angular.module('app',[])

.controller('myController', ['$scope', function($scope) {
  $scope.customerlist = [
    {name: 'Raj Bannerjee', city: 'Zaire'},
    {name: 'Prasun Bannerjee', city: 'Udaipur'},
    {name: 'Raj Malhotra', city: 'Dubai'},
    {name: 'Prasun Joshi', city: 'Mumbai'}
  ];
}]);

还可以参考你的模块:

<body ng-app="app">