我有一個角控制器:
.controller('DashCtrl', function($scope, Auth) {
$scope.login = function() {
Auth.login().then(function(result) {
$scope.userInfo = result;
});
};
});
這是用我創建了一個服務:
.service('Auth', function($window) {
var authContext = $window.Microsoft.ADAL.AuthenticationContext(...);
this.login = function() {
return authContext.acquireTokenAsync(...)
.then(function(authResult) {
return authResult.userInfo;
});
};
});
的驗證服務使用的是科爾多瓦的插件,將在角度世界之外。我想我不清楚何時需要使用$scope.$apply
更新您的$範圍,以及何時不需要。我錯誤的假設是因爲我已經將邏輯封裝到一個角度服務中,因此在這種情況下我不需要它,但除非將$scope.userInfo =
語句包裝到$timeout
或$scope.$apply
中,否則沒有更新。
爲什麼在這種情況下有必要?
可能的複製[AngularJS:Using scope。$ watch and scope。$ apply](http://stackoverflow.com/questions/15112584/angularjs-using-scope-watch-and-scope-apply) –
'authContext.acquireTokenAsync(...)'使用'$ http'嗎? – Daniel
@Daniel Nope。這是一個cordova插件,因此它將成爲一個爲Android應用程序調用本機java代碼的鉤子。 – Dismissile