是否可以从$ 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);
}
}]);
答案 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
}