是否有可能知道AngularJS中是否已经声明了ui.router状态?

时间:2017-05-19 08:54:13

标签: javascript angularjs angular-ui-router

这是我的$ stateProvider配置

app.config(function ($stateProvider, $urlRouterProvider) {
var helloState = {
    name: 'uploadForm',
    url: '/uploadForm',
    templateUrl: 'templates/step_Form/form.html?v=' + new Date().getDay()
}

var uploadState = {
    name: 'uploadForm.upload',
    url: '/upload',
    templateUrl: 'templates/step_Form/form-upload.html?v=' + new Date().getDay()
}


var contentState = {
    name: 'uploadForm.content',
    url: '/content',
    templateUrl: 'templates/step_Form/form-content.html?v=' + new Date().getDay()
}

$stateProvider.state(helloState);
$stateProvider.state(uploadState);
$stateProvider.state(contentState);

})

是否已经宣布了作证状态?

像这样:

if($stateProvider.state.??? == null)
   $stateProvider.state(helloState);

因为我有另一个带有重定向的页面,并且它在配置中传递两次并发出错误'状态helloState已经被声明'

1 个答案:

答案 0 :(得分:1)

您可以使用$state.get(),它会返回$stateProvider中所有已声明状态的数组。

当然,您必须将$state注入您要执行检查的位置。