AngularJS $routeProvider 按页面路由不同?
AngularJS $routeProvider routing differently by page?
我的构建过程连接了所有 JS,所以没有任何黑客攻击,有没有办法指定 $routerProvider
应该只在单个页面上使用,或者覆盖 $routeProvider
以响应页面合适的路线?
我有这个:
/app/page1#/many-things-go-here
和/app/page2#/many-things-go-here
我希望这些路由的处理是分开的。我该怎么做?
编辑——下面是原始答案
最简单的方法是向每个页面添加一个脚本块以定义一个模块常量,然后在配置 routeProvider 的配置部分检查该模块常量。
示例:
// page1.html
angular.module('app').constant('SHOULD_USE_ROUTE_PROVIDER', false);
// page2.html
angular.module('app').constant('SHOULD_USE_ROUTE_PROVIDER', true);
// module config section
angular.module('app').config(function(..., SHOULD_USE_ROUTE_PROVIDER) {
...
if (SHOULD_USE_ROUTE_PROVIDER) {
// configure it here
}
...
});
原始答案:
angular 方法是添加一个提供程序 (https://docs.angularjs.org/guide/providers),它允许您配置一个标志以确定是否应该使用 routerProvider ...假设您创建一个 RoutingProvider 与shouldUseRouterProvider 属性,然后在具有 routerProvider 特定逻辑的路由文件中,您可以注入提供程序并检查:
// inject RouterProvider
if (RouterProvider.shouldUseRouterProvider) {
... routerProvider configuration
}
如果您使用此方法,则在您的页面中,只需添加一个带有 module.config 部分的脚本块,用于设置该页面的配置,例如:
angular.module('app').config(['RouterProvider', function(RouterProvider) {
RouterProvider.shouldUseRouterProvider = false;
}]);
最简单的做法是在每个页面的脚本块中设置一个全局变量,并在设置 routerProvider 的 angular 相关代码中检查它。
我的构建过程连接了所有 JS,所以没有任何黑客攻击,有没有办法指定 $routerProvider
应该只在单个页面上使用,或者覆盖 $routeProvider
以响应页面合适的路线?
我有这个:
/app/page1#/many-things-go-here
和/app/page2#/many-things-go-here
我希望这些路由的处理是分开的。我该怎么做?
编辑——下面是原始答案 最简单的方法是向每个页面添加一个脚本块以定义一个模块常量,然后在配置 routeProvider 的配置部分检查该模块常量。
示例:
// page1.html
angular.module('app').constant('SHOULD_USE_ROUTE_PROVIDER', false);
// page2.html
angular.module('app').constant('SHOULD_USE_ROUTE_PROVIDER', true);
// module config section
angular.module('app').config(function(..., SHOULD_USE_ROUTE_PROVIDER) {
...
if (SHOULD_USE_ROUTE_PROVIDER) {
// configure it here
}
...
});
原始答案:
angular 方法是添加一个提供程序 (https://docs.angularjs.org/guide/providers),它允许您配置一个标志以确定是否应该使用 routerProvider ...假设您创建一个 RoutingProvider 与shouldUseRouterProvider 属性,然后在具有 routerProvider 特定逻辑的路由文件中,您可以注入提供程序并检查:
// inject RouterProvider
if (RouterProvider.shouldUseRouterProvider) {
... routerProvider configuration
}
如果您使用此方法,则在您的页面中,只需添加一个带有 module.config 部分的脚本块,用于设置该页面的配置,例如:
angular.module('app').config(['RouterProvider', function(RouterProvider) {
RouterProvider.shouldUseRouterProvider = false;
}]);
最简单的做法是在每个页面的脚本块中设置一个全局变量,并在设置 routerProvider 的 angular 相关代码中检查它。