从网址获取状态

时间:2014-07-25 13:34:09

标签: javascript angularjs angular-ui-router url-routing

想要获取特定网址的匹配状态。例如,如果我有:

stateProvider.state('a', {
    url: '/a?foo?baz'
});

我需要这样的东西:

state.resolveFromUrl('/a?foo=bar&baz=qux'); // returns state 'a'

1 个答案:

答案 0 :(得分:0)

有一个$state.get()方法可以返回所有状态的列表。

所以,例如,使用loDash,你可以

$scope.resolveFromUrl = function(url){
    return _.find($state.get(), {url: url});
};

更新问题:

$scope.resolveFromUrl = function(url){
    return _.find($state.get(), function(state){ 
        return state.url.split('?')[0].indexOf(url.split('?')[0]) === 0;
    });
};