无法为stateprovider加载templateURL否则选项

时间:2016-02-12 11:18:07

标签: angularjs

我无法为其他状态加载模板网址,但能够重定向到指定的网址。我尝试过使用urlRouterProvider但没有用。

任何人都可以帮我解决这个问题...

我的js:

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


            $stateProvider  
               .state('home', {
                        url: 'abc/home',
                        templateUrl: 'views/main.html'
                    })

               .state('about',{
                        url:'abc/about',
                        controller:'KPIAnalyzeCtrl',
                        templateUrl:'views/about.html'
                    })
               .state('otherwise', {
                        url: 'abc/home',
                        templateUrl: 'views/main.html'
                    });


//  $urlRouterProvider.otherwise('abc/home');


   });

3 个答案:

答案 0 :(得分:0)

否则不适用于任何模板,它不是一个状态。这是一个“重定向”网址。因此,如果您键入不存在的网址,它将“重定向”到该网址,因此它应该是有效状态(如果您不希望它在SPA中,则应为服务器响应)

所以,例如如果你做abc / blahblah,那么它会去abc / home。在您的示例中,您似乎需要删除其他状态,然后它应该可以将您重定向到本地状态。

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


        $stateProvider  
           .state('home', {
                    url: 'abc/home',
                    templateUrl: 'views/main.html'
                })

           .state('about',{
                    url:'abc/about',
                    controller:'KPIAnalyzeCtrl',
                    templateUrl:'views/about.html'
                });


       $urlRouterProvider.otherwise('abc/home');

});

答案 1 :(得分:0)

尝试以下代码。您需要指向urlRouterProvider中的状态

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


        $stateProvider  
           .state('home', {
                    url: 'abc/home',
                    templateUrl: 'views/main.html'
                })

           .state('about',{
                    url:'abc/about',
                    controller:'KPIAnalyzeCtrl',
                    templateUrl:'views/about.html'
                })
           .state('otherwise', {
                    url: '/otherwise',
                    templateUrl: 'views/main.html'
                });

 $urlRouterProvider.otherwise('/otherwise');

});

答案 2 :(得分:0)

由于您要在页面加载上加载主页状态,请使用以下代码或从下面的代码更改主页状态。

.config(function ($stateProvider, $urlRouterProvider) {
    $stateProvider  
       .state('home', {
                url: '/',
                templateUrl: 'views/main.html'
            })

       .state('about',{
                url:'abc/about',
                controller:'KPIAnalyzeCtrl',
                templateUrl:'views/about.html'
            })
       .state('otherwise', {
                url: '/otherwise',
                templateUrl: 'views/main.html'
            });

          $urlRouterProvider.otherwise('/');
 })