2015-05-06 37 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' –