Guy*_*her 20 javascript angularjs
我创建了一个检查用户登录状态的服务(如果令牌存在则记录用户,否则重定向到登录页面).
最初我通过routeProvider解析调用了这个服务 - 这个工作完美一次,但由于Angularjs服务是单例,因此连续调用不会运行测试.
然后我尝试将测试移动到返回对象中的方法中,但是我似乎无法让routeProvider解析为调用服务的特定方法(这在某种程度上是有意义的).
问题是,如何确保每次加载路线时都执行我的测试?
在egghead视频系列(http://www.egghead.io/video/rbqRJQZBF3Q)中,他使用分配给控制器的功能,但这似乎不是生产应用程序的正确解决方案(我不想分配)一个特定控制器的函数,我相信Angularjs依赖注入将不起作用).
Aja*_*wal 27
服务是单件意味着只有一个但只有时间但是如果你只是从服务返回它将被调用一次,但如果你从服务返回一个函数,它将被一次又一次地调用.见下面的样本工作
var app = angular.module('ajay.singhApp', [])
.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/view1', {
templateUrl: 'views/main.html',
controller: 'MainCtrl',
resolve: {
myVar: function (repoService) {
return repoService.getItems().then(function (response) {
return response.data;
});
}
}
})
.when('/view2', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.otherwise({
redirectTo: '/view1'
});
}]);
app.factory('repoService', function ($http) {
return {
getItems: function () {
return $http.get('TextFile.txt');
}
};
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27841 次 |
| 最近记录: |