范围变量在视图中不绑定

时间:2016-03-20 17:53:14

标签: javascript angularjs

我不确定为什么这个范围变量在我的视图中没有绑定。

HTML:

<body ng-app="example">
  <div ng-controller="DemoCtrl">
    <h1>Hello {{name}}</h1>
  </div>
</body>

JS:

var app = angular.module('example', []);

app.controller('DemoCtrl', function() {
  $scope.name = 'World';
});

以下是JSbin示例。

更新:03/21/16

正如@Dsafds在他的answer中所说,我只是忘了包含$scope参数。希望AngularJS有一个棉绒工具!

3 个答案:

答案 0 :(得分:3)

因为您忘记导入$ scope:

var app = angular.module('example', []);

app.controller('DemoCtrl', ["$scope", function($scope) {
  $scope.name = 'World';
}]);

那么它会起作用..

&#13;
&#13;
 var app = angular.module('example', []);

 app.controller('DemoCtrl', ["$scope",
   function($scope) {
     $scope.name = 'World';
   }
 ]);
&#13;
<head>
  <script src="https://code.angularjs.org/1.4.9/angular.js"></script>
</head>

<body ng-app="example">
  <div ng-controller="DemoCtrl">
    <h1>Hello {{name}}</h1>
  </div>
</body>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您没有在控制器中使用$scope作为参数:

var app = angular.module('example', []);

DemoCtrl.$inject = ['$scope']; // <----- Add annotation
app.controller('DemoCtrl', function DemoCtrl($scope) { //<------- Add $scope here
  $scope.name = 'World';
});

查看工作Jsbin

答案 2 :(得分:0)

$scope 作为控制器功能中的依赖项传递。

var app = angular.module('example', []);

app.controller('DemoCtrl', function($scope) {
  $scope.name = 'World';
});