我正在使用Angular JS中的Factory來使用router-ui在2個控制器/子視圖之間共享數據。多角度不更新Angular JS中的變量
廠:
app.factory('SharedData', function() {
return {data: {}};
})
JobsController:
app.controller("JobsController", function($scope, $http, $resource, $location, $stateParams, JobsService, $state, SharedData) {
SharedData.data = JobsService.query();
$scope.data = SharedData.data;
});
NavController:
app.controller("navController", function($scope, $state, SharedData) {
$scope.data = SharedData.data;
});
jobs.html
{{data.jobs.length}} // this updates fine
nav.html
{{data.jobs.length}} // this does not update
相反,我必須這樣做:
NavController:
app.controller("navController", function($scope, $state, SharedData) {
$scope.data = SharedData;
});
jobs.html
{{data.jobs.length}} // this works fine
nav.html
{{data.data.jobs.length}} // this now works but not sure why the extra 'data' is needed?
顯然我在這裏做錯了什麼,但我無法弄清楚儘管google搜索了好幾個小時......任何人都可以幫忙嗎?
我建議在實例化兩個控制器之前在SharedData中加載'作業'數據。這可以通過使用StateProvider的[解析屬性](https://github.com/angular-ui/ui-router/wiki)來完成。 – tsuz