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
   429   430   431   432   433   434   435   436   437   438   439