0

我想通过从另一个 js 文件中发出 $scope 的方法来反映 $scope 的数据。但它不能。

我的来源是这样的,。

另一个.js

//o.delegate  refer HomeCtrl's  to $scope
// render Pagination by simplePagination 
o.delegate.renderOn(idx)

home_controller.js

function HomeCtrl($scope,$routeParams,...){
  $scope.items = [];

  $scope.renderOn(idx){
      // fooo is called.
      console.log("called fooo");

      // changed $scope.items but $scope.items doesn't reflect view.
      $scope.items.append("foo");
  }
}

我想操作 $scope.items 并反映我的观点。你有什么主意吗?提前致谢。

4

1 回答 1

2

您从角度处理循环外部调用范围更改。因此不会自动获取更新。

您可以使用 $apply 函数通知 Angular 您更改范围,这应该可以解决您的问题。不过,从 Angular 和外部脚本调用时,您应该使用不同的函数。

function HomeCtrl($scope,$routeParams,...){
  $scope.items = [];

  //this can be called from within angular
  $scope.renderOn(idx){
      // fooo is called.
      console.log("called fooo");

      // changed $scope.items but $scope.items doesn't reflect view.
      $scope.items.append("foo");
  }
 //this is to be called externally
 var renderOnExternal = function(idx){
     $scope.$apply(function() {
         $scope.items.append("foo");
     });
    //or even: $scope.$apply(function(){ $scope.renderOn(idx);});
 }
}
于 2013-10-17T11:22:19.953 回答