如何在角度条件下有条件地应用状态提供者

时间:2015-04-24 06:11:01

标签: javascript angularjs

$stateProvider
        .state('login', {
            url: '/login',
            controller: 'LoginController',
            templateUrl: 'login/login.html',
            access: 0
        })

这里我想写

 $stateProvider
        .state('login', {
            url: '/login',
            controller: 'LoginController',
            if(isAvailable){
              templateUrl: 'login/login.html',
            }
         else{
          //other url              
           }

        })

有条件地我必须显示任何一个视图。这在配置文件本身中是可以实现的。请建议

1 个答案:

答案 0 :(得分:3)

是的,请将templateProvider配置与$templateFactory一起使用。例如

url: '/login',
controller: 'LoginController',
templateProvider: function($templateFactory, availabilityService) {
    var url = availabilityService.isAvailable() ?
        'login/login.html' : 'other/url.html';
    return $templateFactory.fromUrl(url);
}