在我的应用中,用户在第一个视图中设置他/她的性别,然后将其存储在localStorage中。
$scope.setGender = function(gender){
$scope.data.gender = gender;
localStorage.setItem('paramGender', $scope.data.gender);
}
然后,用户通过阅读localStorage转到第二个视图并在代码中读取其性别:
$scope.data.gender = localStorage.getItem("paramGender"));
但是,如果用户返回第一个视图,更改他/她的性别并返回第二个视图,则$scope.data.gender
未在第二个控制器中更新。
如何在不重新加载整个第二个视图的情况下实现这一点(我需要保留缓存,因为第二个视图很重)?
由于
答案 0 :(得分:0)
我只会在这种情况下使用事件和服务。
app.factory('GenderService', [function() {
var self = this;
self.gender = null;
return {
setGender: function(gender) {
self.gender = gender;
},
getGender: function(){
return self.gender;
}
}
}]);
$scope.setGender = function(gender){
$scope.data.gender = gender;
GenderService.setGender(gender);
$rootScope.$broadcast('genderUpdated', gender);
}
然后在你的另一个控制器中:
$scope.data.gender = GenderService.getGender();
$scope.$on('genderUpdated', function(event, data){
$scope.data.gender = data;
})
此致