Angularjs $scope更新在由非角度js对象操作时未反映视图

Angularjs $scope更新在由非角度js对象操作时未反映视图,angularjs,Angularjs,我想通过从另一个js文件发出$scope的方法来反映$scope的数据。但它不能 我的来源是这样的 另一个.js home_controller.js 我想操作$scope.items并反映到我的视图中。 你知道吗?提前感谢。您可以从角度处理循环外部调用范围更改。因此,更新不会自动拾取 您可以通知angular使用$apply函数更改范围,这将解决您的问题。 但是,当从angular和外部脚本调用时,应该使用不同的函数 function HomeCtrl($scope,$routeParams,

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

我的来源是这样的

另一个.js home_controller.js 我想操作$scope.items并反映到我的视图中。
你知道吗?提前感谢。

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

您可以通知angular使用$apply函数更改范围,这将解决您的问题。 但是,当从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);});
 }
}

尝试在
$scope.$apply()
中包装对
append
的调用。谢谢!你帮我节省了很多时间。
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");
  }
}
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);});
 }
}