某些应用程序状态信息需要存储在Angular服务中,以便全局访问。
app.value('identity', {});
然后在登录后的第一个视图的控制器中。我进行GET api调用以从服务器端收集应用程序状态信息。在成功回调中,将数据传输到我的全局变量(服务)。
function successCallback(data) {
identity.username = data.username;
identity.email = data.email;
}
我假设identity
将在整个应用程序中保存数据。但事实并非如此!在我的其他视图中,我将identity
注入控制器
app.controller('anotherController', ['identity', anotherController];
function anotherController(identity){
// access identity here.
$scope.username=identity.username;
}
我第一次看到这个观点。 username
正确显示在页面上。但刷新后,identity
似乎再次为空!我们可以做些什么来使价值真正持久?
答案 0 :(得分:2)
您将var
身份指向一个角度无法了解的新对象,因此无法将该新值传递给另一个控制器。我将回调的响应分配给身份上的属性:
app.value('identity', { data: null });
...
funciton successCallback(data) {
// here, not overwriting identity, but editing a property
identity.data = data;
}
控制器:
app.controller('anotherController', ['identity', anotherController];
function anotherController($scope, identity){
// add the svc to the scope so you can access its properties later
$scope.identity = identity;
}
html模板:
{{ identity.data | json }}