今天我在使用AngularJS时发现了以下问题。
我的代码如下:
app.controller("SomeController", function(){
this.foo = true
this.changeFoo = function(bool){
this.foo = bool
}
api.check(function(response){
this.changeFoo(response.bar)
})
})
(顺便说一下:响应& response.bar 未定义)
api 是我的类 API 的一个实例,在我的Angular代码之外定义。
问题是,我无法在回调函数中更改 this.foo 。
我该怎么做才能访问 this.foo ?
编辑:
我尝试将 this 作为参数传递,结果是相同的
api.check(this, function(scope, response){
scope.foo = response.bar
})
范围似乎是在此函数中定义的,但更改不会影响任何内容
答案 0 :(得分:1)
在Api通话之前,您需要将this
指定给角度代码中的其他变量。然后使用该变量访问this
变量。喜欢这个
app.controller("SomeController", ['$scope',function($scope){
this.foo = true;
this.changeFoo = function(bool){
this.foo = bool;
$scope.$apply();
};
Var controller=this;
api.check(function(response){
controller.changeFoo(response.bar);
});
}]);