在角度中使用$ controller服务时查看不更新

时间:2016-07-15 04:15:57

标签: angularjs

我有两个控制器。该视图与firstCtrl绑定。我正在尝试在第二个中运行该功能,以便更新视图。函数运行但视图未更新。有什么想法吗?

<div>{{people.length}}</div>



angular.module('myApp').controller('firstCtrl', function($scope, $http) {
  var self = this;
  $scope.people = [];


  function getData() {
    $http.get('/people').then(function(res) {
      $scope.people = res.data;
    });
  }

  getData();
  $scope.getData = getData;

  self.getData = function(){
               $scope.getData();
      };
      return self;

});




angular.module('myApp').controller('secondCtrl', function( $controller, $scope, $http) {

    var firstCtrl= $controller('firstCtrl', { $scope: $scope.$new() });
    firstCtrl.getData(); //This runs but view is not updated above.
});

1 个答案:

答案 0 :(得分:0)

我认为您的代码在$ scope中存在一些问题。所以不要直接在firstCtrl中传递数据。我将回调传递给getData函数并将数据分配给回调中的$ scope.people。

这是工作的Plunker:

> http://plnkr.co/edit/QznxFL