我有以下内容:
app.controller('MyController', function($scope, MyAdapter) {
MyAdapter.getContactInfo(123, function(response) {
$scope.contactInfo = JSON.parse(response.result);
});
}
app.service("MyAdapter", function() {
this.getContactInfo = function(id, callback) {
thirdPartyAPI(id, callback);
};
});
本质上我的控制器调用服务来调用第三方api中的异步函数。我需要使用响应来更新控制器中的作用域,但似乎我无法从匿名函数访问作用域。有办法解决这个问题吗?
答案 0 :(得分:3)
您应该有权访问回调中的范围。可能发生的是因为它是更新范围的第三方异步调用,angular不知道它。您需要使用$scope.$apply()
来触发摘要周期。
app.controller('MyController', function($scope, MyAdapter) {
MyAdapter.getContactInfo(123, function(response) {
$scope.contactInfo = JSON.parse(response.result);
$scope.$apply();
});
}