更新angularjs中的this.model

时间:2015-12-07 19:46:41

标签: angularjs angularjs-scope

我正在尝试使用从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。

1 个答案:

答案 0 :(得分:1)

this不会引用成功函数中的正确范围。为了使其正常工作,您需要将this存储在变量中,以便在其他函数中使用它。

var vm = this;  // view model
vm.arr = [];
...
vm.arr = JSON.parse(data);

你会使用相同的模板逻辑。