我正在努力弄清楚如何做到这一点。希望有人能帮忙:)
我的 Angular 应用程序中有多个 Controller 。就像 titleCtrl 和 SettingsCtrl
我有一个包含如下变量的服务:
var myVar = {title: 'test', settings: {color: 'black', font: 'verdana'}};
我正在发出 $http.get 请求以从服务器更新“myVar”变量。
问题是,http请求完成后如何更新titleCtrl中的$scope.title和SettingsCtrl中的$scope.settings?我知道如何在单个 Controller 中执行此操作,但如何更新多个 Controller 中的 $scopes ?
最佳答案
在服务中使用该变量的监视。更新后,然后更新 Controller 范围中的值。这是一个例子:
在 Controller 内,您可以在 YourService
上监视 var myVar
,当它发生变化时,用它的值更新名为 myVarInController
的变量更改为。
$scope.$watch(
// This function returns the value being watched.
function() {
return YourService.myVar;
},
// This is the change listener, called when the value returned above changes
function(newValue, oldValue) {
if ( newValue !== oldValue ) {
$scope.myVarInController = newValue;
}
}
);
关于javascript - 在 $http 之后更新多个 Controller 中的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25665336/