AngularJs 局部变量的奇怪行为
AngularJs local variable weird behavior
这是controller
中的代码
cat1=[];
$.getJSON('categories/1/', function(data) {
cat1 = data; //returns a JSON
});
//cat2..4 are some JSONs
$scope.pictures=[cat1,cat2,cat3,cat4,cat5];
问题是似乎cat1=[]
和cat1=data
是不同的变量,因为pictures[cat1]
总是返回[]
我做错了吗?
因为$.getJSON
是一个异步请求,当您尝试记录时仍在处理。另外,不要将jQuery与Angular一起使用,使用Angular的$http
(这样就会触发$digest
周期,一切都保持同步):
$http.get("categories/1/").success(function(data) {
cat1 = data; //returns a JSON
$scope.pictures=[cat1,cat2,cat3,cat4,cat5];
});
不要忘记在控制器中添加$http
作为依赖项:
app.controller("myCtrl", ["$scope", "$http", function($scope, $http) {
}]);
相关文章:
- Javascript用函数return替换局部变量
- 每次调用函数时,都要修改Javascript中的局部变量
- 局部变量在闭包中丢失
- 试图将一个局部变量传递给我的ngAside控制器
- jQuery.ajax()访问javascript循环中的beforeEnd局部变量
- 如何使用局部变量创建全局变量
- 如何在单击链接后将局部变量发送到部分呈现
- 定义 JavaScript 类的局部变量
- 创建所有原型函数均可访问的局部变量
- 局部变量的声明
- JavaScript:在调用之前将函数重新分配给局部变量,而不是直接调用并对'这'
- 为什么 Javascript 中的类变量在尝试多次调用它们或将它们分配给局部变量时会消失
- 函数中的局部变量
- 局部变量仍可通过函数访问
- JavaScript和局部变量是不好的做法
- AngularJS承诺和局部变量
- 尝试在 AngularJS 工厂中返回局部变量时如何避免函数表达式
- AngularJs 局部变量的奇怪行为
- 访问angularjs控制器中的局部变量
- 访问AngularJS中另一个函数的局部变量