如何在ui-router中激活默认状态?

时间:2016-12-28 15:29:48

标签: angularjs angular-ui-router

我正在使用ui-router 0.2.18

我网站的主要推荐管理网址如下所示http://example.com/partners/dashboard我希望将其更改为http://example.com/partners/dashboard#referral-link(以引导相应的ui-router状态:referral-link)。但似乎when方法不起作用......

app.js

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

    // it does not work...
    $urlRouterProvider.when('/partners/dashboard', '/partners/dashboard#/referral-link');

    var referralLinkState = {
        name: 'referral-link',
        url: '/referral-link',
        template: '<kr-partners-referral-link></kr-partners-referral-link>'
    };

    var myClientsState = {
        name: 'my-clients',
        url: '/my-clients',
        template: '<kr-partners-my-clients></kr-partners-my-clients>'
    };
    // ...
    $stateProvider.state(referralLinkState);
    $stateProvider.state(myClientsState);    
}]);  

后来添加:伙计们,我认为您的.otherwise方法对我不起作用。因为它会覆盖所有URL,但我只需要覆盖一个特定的URL。

2 个答案:

答案 0 :(得分:0)

将.otherwise子句与字符串参数一起使用:

$urlRouterProvider.otherwise('/referral-link');

或者回调动态:

$urlRouterProvider.otherwise(function($injector) {
    var $state = $injector.get("$state");
    $state.go(..put state name here);
});

答案 1 :(得分:0)

答案在这里: https://stackoverflow.com/a/22569209/1056253

基本上我做了什么 - 在{partner} {/ 1}}中注入了$state并将controller方法调用为:go