Page 434 - AngularJS权威教程
P. 434
414 第 31 章 构建 Angular Chrome 应用
// 从sessionStorage中拉取配置
service.user = angular.fromJson(sessionStorage.presenty) || defaults
return service.user;
}
};
// 立即调用它,从session storage中回复配置
// 因此这里的用户数据是立即可用的
service.restore();
return service;
})
// ...
我们还可以跨Chrome应用注入这个UserService,然后使用同样的用户数据。回到
SettingsController,现在可以使用这个新服务设置user对象来定义设置信息:
.controller('SettingsController', function($scipe, UserService) {
$scope.user = UserService.user;
});
如果刷新浏览器,会看到有一个为用户设置的默认autoip,这是我们在UserService中定义
设置的默认值。
我们需要一种将用户数据保存在会话存储中的方法,这样就可以跨应用使用这些数据了。在
templates/settings.html中,定义了一个带有ng-submit="save()"行为的表单;因此,当用户提交
这个表单时,save()函数就会被调用。
在SettingsController内,我们需要实现这个save()函数,它会调用UserService上的save
方法,将用户数据保存到他们的sessionStorage中。
.controller('SettingsController', function($scope, UserService) {
$scope.user = UserService.user;
$scope.save = function() {
UserService.save();
}
});
还有一个绑定到user.location的唯一输入字段,如果用户改变它的值并按下保存,用户的
sessionStorage就会更新,如图31-9所示。
图31-9 sessionStorage