gpt4 book ai didi

javascript - AngularJS - 如何覆盖 $urlRouterProvider.when

转载 作者:行者123 更新时间:2023-11-27 22:57:50 25 4
gpt4 key购买 nike

在我的 AngularJS 应用程序中,我有多个 Route.js 文件控制我的所有路由。

默认情况下,我的路由 "/" 等于 "/main",但是有没有办法稍后覆盖它?

假设我有一个像这样的route.js:

angular.module('myApp')
.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.when('/','/main');

$stateProvider
.state('main', {
url: "/main",
templateUrl: 'main.html',
controller: 'mainController'
});
});


但后来我想用来自route2.js的新路由动态覆盖这个默认路由

angular.module('myApp')
.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.when('/','/newMain');

$stateProvider
.state('newMain', {
url: "/newMain",
templateUrl: 'newMain.html',
controller: 'newMainController'
});
});

最佳答案

.when 设置不仅可以提供常量,甚至可以是函数。

那么,让我们进行一些设置(例如,朴素的全局 var useDifferent = false;) 并对其进行 Hook 决策:

$urlRouterProvider.when("/other", function(){
if(useDifferent){
return "/newMain";
}
return "/Main";
});

以后,任何人都可以更改该设置useDifferent = true(或者导致更多、更智能和正确的处理......)

关于javascript - AngularJS - 如何覆盖 $urlRouterProvider.when,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37433167/

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