gpt4 book ai didi

javascript - 在 angularJs 中存储解析方法的最佳位置

转载 作者:行者123 更新时间:2023-11-29 19:32:38 25 4
gpt4 key购买 nike

我目前正在为我的管理面板路由设置解析,我想知道存储它们的最佳方式是什么,因为理想情况下我不想让我的路由器充满这样的方法:

when('/admin', {
templateUrl: 'app/private/admin/view.html',
controller: 'admin',
resolve: ['$q', '$location', 'api', function($q, $location, api){

var deferred = $q.defer(),
session = api.session();

if(session){
deferred.resolve(session);
} else {
api.authorise().success(function(response){
deferred.resolve(response);
}).error(function(error){
$location.path('/login');
deferred.reject(error);
});
}

return deferred.promise;

}]
})

我认为理想的结构是将解析存储在我用于该路由的 Controller 中,例如:

when('/admin', {
templateUrl: 'app/private/admin/view.html',
controller: 'admin',
resolve: adminCtrl.resolve
})

但是管理 Controller 无法从配置中访问,所以这让我不得不使用一个提供程序,在扩展我的应用程序时它仍然会很困惑。

你们如何处理你们的决议/是否可以将其存储在我的 Controller 中?

最佳答案

我通常使用服务来解决我想解决的问题:

when('/admin', {
templateUrl: 'app/private/admin/view.html',
controller: 'admin',
resolve: { adminData: function(myService) { return myService.list(); } }
});

像 UI-router 这样更高级的 Angular 路由器允许状态从父状态继承。如果你想在多个状态下进行解析,你可以使用继承,并在你的父状态中定义解析。 (https://github.com/angular-ui/ui-router/wiki/Nested-States-%26-Nested-Views)。

关于javascript - 在 angularJs 中存储解析方法的最佳位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26731888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com