在哪里使用Angular 1放置init代码?

时间:2016-11-28 01:52:04

标签: javascript jquery angularjs

我有一个角度Web应用程序,每当我需要显示用户名或用户图像时,它正在调用后端API。但是,我现在希望能够在首次启动应用程序时将此信息缓存在localStorage中。 Angular中最好的方法或最好的地方是什么?我想象它将等同于jquery $(document).ready方法。任何提示都将不胜感激。

2 个答案:

答案 0 :(得分:3)

你可以把它放在run block中。这将在您的应用启动时运行一次

angular.module('myApp').run(function () {
    //Run init code
});

答案 1 :(得分:0)

虽然您可以使用module.run,但更好的选择是与主题相关的服务。 Angular服务只创建一次,因此您可以将加载代码放在最顶层。

E.g。

angular.module('myApp').service('currentUser', function() {
    // load user data from local storage, if not found load from server
    // then store in localStorage

    this.name = /* loaded name */;
    // etc...

});

请注意,大多数请求都是异步的,因此您可能希望执行会返回用户承诺的factory