[英]I replaced $scope to a variable and now my angular application doesn't work
我正在做一个Angular应用程序,并且我读到不要使用$ scope这是一个好习惯。 所以我替换了一个变量,现在数据没有出现在我的页面上:
就像这样:
observatoryApp.controller('AppController', function AppController($scope, $http){
var $scope = this;
$scope.years = [];
$http.get('json/years.json').then(function(response){
$scope.years = response.data;
$scope.data = $scope.years[0];
});
现在是这样的:
observatoryApp.controller('AppController', function AppController($http){
var self = this;
self.years = [];
$http.get('json/years.json').then(function(response){
self.years = response.data;
self.data = self.years[0];
});
并且数据没有显示在index.html页面上:
<body ng-controller="AppController">
...
<select class="year form-control"
ng-options="year.id for year in years"
ng-model="data">
</select>
...
</body>
我做错了什么?
我读到这是个好习惯,不要使用$ scope
那将是在使用controllerAs
别名作为替代的情况下。
除非使用该别名,否则将使用注入的$scope
为其分配模型属性。 您将永远不会做var $scope = this;
您需要为控制器添加别名。
示例:将ng-controller="ctrlName"
更改为ng-controller="ctrlName as vm"
<body ng-controller="AppController as vm">
...
<select class="year form-control"
ng-options="year.id for year in vm.years"
ng-model="data">
</select>
...
</body>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.