首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用$urlRouterProvider.rule

如何使用$urlRouterProvider.rule
EN

Stack Overflow用户
提问于 2015-10-29 01:02:48
回答 1查看 3.5K关注 0票数 1

好吧,这可能是UI-路由器的错误,也可能是我的错。我在Git https://github.com/angular-ui/ui-router/issues/2342上发布了一个问题,现在还没有回应,如果有人能帮上忙的话。

如果我做了什么,比如:

代码语言:javascript
复制
angular.module('myapp', [ 'ui.router' ])

    .config(function($stateProvider, $urlRouterProvider){

        $urlRouterProvider.otherwise("/state1");

        $urlRouterProvider.rule(function ($injector, $location) {
            return "/state2";
        });

        $stateProvider
            .state('state1', {
                url: "/state1",
                views: {
                    "mainview": { template: "state1.html" }
                }
            })
            .state('state2', {
                url: "/state2",
                views: {
                    "mainview": { template: "state2.html" }
                }
            });
    })

    .controller('AppCtrl', AppCtrl);

    function AppCtrl(){
    }

地址栏已更改,但state2.html未加载,只有一个空白页而不引发任何错误。

非常感谢任何可能的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2015-10-29 06:24:24

.rule看作是一个AOP过滤器。这只是一个方面,

  • 执行总是,当url更改时,
  • 可以调整那个url。

与否则相比,它被视为“最后的url解析处理程序”。

因此,如文档中所述,最好的用途是引入一个不区分大小写的url支持:

规则(规则)

定义$urlRouterProvider用于查找特定URL匹配的规则。

  • rule object Handler函数,它使用$injector和$location服务作为参数。可以使用它们以字符串的形式返回有效路径。

示例:

var app = angular.module('app','ui.router.router');app.config(function ($urlRouterProvider) { //这里有一个示例说明如何允许不区分大小写的urls $urlRouterProvider.rule ($injector,$location) { var path = $location.path(),规范化= path.toLowerCase();if (path !==归一化){返回归一化;});};

有一个上面的例子

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33404265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档