我在页面 x 。我单击 x 页面上的操作,该操作使用新文本更新(使用ajax)3个div元素。
然后我导航到页面 y (带有角度请求),然后返回页面 x - 我用ajax更改的值现在已经消失(它们是默认值) )。
我的值不在表单内,而是在div元素内。
在角度切换页面之间保留值的最简单方法是什么?如果有些更改(例如使用ajax)?
答案 0 :(得分:3)
您有几个选择
答案 1 :(得分:3)
最简单的?在$ rootScope上设置值。
$rootScope.name = name;
现在只需在任何需要名称的控制器中注入$ rootScope。
angular.module('myModule').controller('CtrlA', function($rootScope) {
$rootScope.name = "something";
});
angular.module('myModule').controller('CtrlB', function($rootScope) {
console.log($rootScope.name);
});
如果您开始向rootScope添加大量值,那么最好使用service。
与名称之类的简单服务相当的服务是:
angular.module('myModule').service('Name', function Name() {
var name;
var service = {
getName: function() { return name; },
setName: function(n) { name = n; }
};
return service;
});
然后,您可以在不同的控制器中注入此服务。
angular.module('myModule').controller('CtrlC', function(Name) {
Name.setName('hello world!');
});
angular.module('myModule').controller('CtrlD', function(Name) {
$scope.name = Name.getName();
console.log($scope.name);
});