2015-05-06 41 views
0

我用UI的路由器是这样的:UI路由器的路由,但不会使templateUrl

angular.module('app.user.awardee', [ 
    'ui.router' 
]) 
    .config(
    [   '$stateProvider', '$urlRouterProvider', 
     function ($stateProvider, $urlRouterProvider) { 
      $stateProvider 
       .state('awardees', { 

        abstract: true, 
        url: '/u/awardee', 

        templateUrl: 'app/user/awardee/awardee.html', 

        resolve: { 
         awardees: ['awardees', 
          function(awardees){ 
           return awardees.all(); 
          }] 
        }, 


        controller: ['$scope', '$state', 'users', 'utils', 
         function ( $scope, $state, users, utils) { 

         }] 
       }) 
       .state('awardees.personaldata', { 
        url: "/personaldata", 
        templateUrl: 'app/user/awardee/personal_info/personal/view.html', 
        controller: ['$scope', '$stateParams', '$state', 'utils', 'access', 
         function ($scope, $stateParams, $state, utils, access) { 

         }] 
       }) 
       .state('awardees.personaldata.edit', { 
        url: "/edit", 
        templateUrl: 'app/user/awardee/personal_info/personal/edit.html', 
        controller: ['$scope', '$stateParams', '$state', 'utils', 'access', 
         function ($scope, $stateParams, $state, utils, access) { 

         }] 
       }) 
       .state('awardees.univerisitydata', { 
        url: "/universitydata", 
        templateUrl: 'app/user/awardee/personal_info/university/view.html', 
        controller: ['$scope', '$stateParams', '$state', 'utils', 'access', 
         function ($scope, $stateParams, $state, utils, access) { 

         }] 
       }) 
       .state('awardees.universitydata.edit', { 
        url: "/edit", 
        templateUrl: 'app/user/awardee/personal_info/university/edit.html', 
        controller: ['$scope', '$stateParams', '$state', 'utils', 'access', 
         function ($scope, $stateParams, $state, utils, access) { 

         }] 
       }) 
       .state('awardees.bank', { 
        url: "/bank", 
        templateUrl: 'app/user/awardee/personal_info/bank/view.html', 
        controller: ['$scope', '$stateParams', '$state', 'utils', 'access', 
         function ($scope, $stateParams, $state, utils, access) { 

         }] 
       }) 
       .state('awardees.bank.edit', { 
        url: "/edit", 
        templateUrl: 'app/user/awardee/personal_info/bank/edit.html', 
        controller: ['$scope', '$stateParams', '$state', 'utils', 'access', 
         function ($scope, $stateParams, $state, utils, access) { 

         }] 
       }) 

     } 
    ] 
); 

我航线从“awardees.personaldata”到“awardees.personaldata.edit”, 路线是happend, url已更改,但未呈现'awardees.personalata.edit',则呈现'awardees.personalata'。 控制台没有任何错误, 我的错误是什么?以及如何使其工作?

我使用此代码转换:

<a ui-sref="awardees.personaldata.edit" class="btn btn-hollow btn-primary btn-sm">Edit Personal Data</a> 
+0

你是如何做的过渡,你应该使用'$ state.go( 'awardees.personaldata.edit')' from controller&'ui-sref =“awardees.personalata.edit”'from html anchor –

+0

我使用Edit yozawiratama

+0

你可以制作一个plnkr来复制它吗?它看起来很好,除非你的'personal/edit.html'与你的'personal/view.html'完全相同。 – Tony

回答

2

我冒昧地猜测这一点,最有可能的,有一个失踪ui-view做。

母国认为,在这种情况下,"awardees.personaldata"必须有一个ui-view地方的孩子 - "awardees.personaldata.edit" - 呈现其内容(就像"awardees"状态的观点有其ui-view,这我相信是这样,因为你可以查看"awardees.personaldata")。

因此,确保模板:'app/user/awardee/personal_info/personal/view.html'你有这样的:

<div> 
    <span>Some data from "awardees.personaldata" state</span> 

    <!-- space to render "awardees.personaldata.edit" state --> 
    <div ui-view></div> 
</div> 
+0

哇,你是对的,嗯它的作品,但它是不是我想要的东西。我认为view.html会过渡到edit.html。可能你可以更新你的答案吗? – yozawiratama

+0

@yozawiratama,一种方法是使它成为“视图”的兄弟,所以它会呈现在相同的'ui-view' –