可以从$ scope。$ apply调用中访问angularjs $ scope

时间:2014-09-09 20:39:43

标签: javascript angularjs

是否可以从$ scope。$ apply call中访问$ scope变量和函数?

以下是一个虚假的例子来证明我的观点。 如图所示,当控制器启动时调用someFunctionWithaCallbackParam,并在函数完成时将其参数用作回调。

$scope.$apply内,$ scope变量和函数是否可见?如果没有,那么如何访问$ scope?

 angular
  .module('myController')
  .controller('ExampleController', ['$scope', function($scope) {

     $scope.data = [];

     someFunctionWithaCallbackParam(function(myList) {
        $scope.$apply(function() {
           for (var i = 0; i < myList.length; i++) {
              // Is $scope visible from here??
              $scope.addItem(myList[i]);
           }
        });
     }
     $scope.addItem(item) {
        // do stuff
        $scope.data.push(item);
     }
  }]);

1 个答案:

答案 0 :(得分:0)

是。但是,作为最佳实践,您应该只将变量和函数分配给要在视图中使用的范围。我尝试分离视图和控制器变量和函数。

//controller variable
var blocks = [];

//scope variable
$scope.buyers = [];

//controller function
var addBlock = function(block) {
    blocks.push(block);
}

//scope function
$scope.blah = function() {
    //do stuff
}