我正在尝试使用从ajax获取的数据来更新模型和视图。
使用$ scope(这可行):
<div ng-controller="myCtrl">
<ul>
<li ng-repeat="a in arr">{{a}}</li>
</ul>
</div>
var app = angular.module("app", [])
app.controller("myCtrl", function($scope,$http)
{
$scope.arr = [];
$http.get("/angular/ajax").success(function(data){
$scope.arr = JSON.parse(data);
});
});
但是当我尝试使用'controller as'时它不会
<div ng-controller="myCtrl as mc">
<ul>
<li ng-repeat="a in mc.arr">{{a}}</li>
</ul>
</div>
var app = angular.module("app", [])
app.controller("myCtrl", function ($scope,$http) {
this.arr = [];
$http.get("/angular/ajax").success(function(data){
this.arr = JSON.parse(data);
});
});
P.S。初学者在angularjs。
答案 0 :(得分:1)
this
不会引用成功函数中的正确范围。为了使其正常工作,您需要将this
存储在变量中,以便在其他函数中使用它。
var vm = this; // view model
vm.arr = [];
...
vm.arr = JSON.parse(data);
你会使用相同的模板逻辑。