Javascript 可以从$scope内访问angularjs$scope。$apply调用
是否可以从$scope.$apply调用中访问$scope变量和函数 下面是一个虚假的例子来证明我的观点。 如图所示,控制器启动时调用Javascript 可以从$scope内访问angularjs$scope。$apply调用,javascript,angularjs,Javascript,Angularjs,是否可以从$scope.$apply调用中访问$scope变量和函数 下面是一个虚假的例子来证明我的观点。 如图所示,控制器启动时调用SomeFunctionWithAllBackParam,其参数在函数完成时用作回调 在$scope.$apply中,$scope变量和函数是否可见?如果没有,那么如何访问$scope angular .module('myController') .controller('ExampleController', ['$scope', function(
SomeFunctionWithAllBackParam
,其参数在函数完成时用作回调
在$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);
}
}]);
angular
.module('myController')
.controller('ExampleController',['$scope',function$scope){
$scope.data=[];
someFunctionWithaCallbackParam(函数(myList){
$scope.$apply(函数(){
对于(变量i=0;i
是。但是,作为最佳实践,您应该只将变量和函数分配给要在视图中使用的范围。我尝试将视图和控制器变量和函数分开
//controller variable
var blocks = [];
//scope variable
$scope.buyers = [];
//controller function
var addBlock = function(block) {
blocks.push(block);
}
//scope function
$scope.blah = function() {
//do stuff
}
是的,JavaScript闭包就是这样工作的。只要你定义了$scope可用的函数,你就很酷。这意味着,如果你在一些大型全局处理程序集合中定义了$scope函数,而不使用DI功能,你就不能像这样使用它。关于将vars&func分配给将用于查看的作用域的好提示。这是显而易见的既然你已经指出了,但是,我没有做。谢谢你。@whyceewhite没问题!