2015-05-20 213 views
0

這是一個角度ui路由配置。我的問題是關於最後一個,設施的顯示操作。角度ui路由器子狀態不會更新視圖

$stateProvider 
    .state('app', { 
     url: '', 
     abstract: true, 
     templateUrl: helper.basepath('app.html'), 
     controller: 'AppController', 
     resolve: helper.resolveFor('fastclick', 'modernizr', 'icons', 'screenfull', 'animo', 'sparklines', 'slimscroll', 'classyloader', 'toaster', 'whirl') 
    }) 
    .state('app.facility', { 
     parent: 'app', 
     url: '/facility', 
     title: 'Einrichtungen', 
     templateUrl: helper.basepath('Facility/Index.html'), 
     controller: 'FacilityController', 
     resolve: { 
      Facilities: ['Facility', function(Facility) { 
       return Facility.query().$promise; 
      }] 
     } 
    }) 
    .state('app.facility.show', { 
     url: '/:id', 
     title: 'Einrichtung Detail', 
     templateUrl: helper.basepath('Facility/Show.html'), 
     controller: 'FacilityItemController', 
     resolve: { 
      Facility: ['Facility', '$stateParams', function(Facility, $stateParams) { 
       return Facility.get({id: $stateParams.id}).$promise; 
      }] 
     } 
    }) 

當我打電話這樣

<a ui-sref=".show({id: facility.id})">{{facility.name}}</a> 

的URL變化以及資源和Show.html模板的鏈接是通過AJAX加載,但認爲不會改變。沒有發生錯誤。

當我將狀態重命名爲app.facilityShow(無子狀態)時,視圖會加載。你有什麼想法我做錯了嗎?

回答

0

好吧,我覺得我得到了它。我已經改名爲國家app.facilityapp.facility.index,並定義了新的狀態app.facility這是抽象的,看起來像這樣:

.state('app.facility', { 
     abstract: true, 
     url: '/facility', 
     template: '<div ui-view></div>' 
    }) 

模板部分是必要的。沒有它,它不起作用。

1

從UI路由器維基

上相對UI-SREF目標的說明:

您還可以使用UI-SREF內的相對狀態的路徑,就像傳遞給state.go的相對路徑()。您只需要注意,路徑與鏈接所處的狀態相關,即,換句話說就是加載包含鏈接的模板的狀態。

您需要在app.facility狀態下ui-sref工作

<a ui-sref=".show({id: facility.id})">{{facility.name}}</a> 
+0

我是。而且使用絕對狀態也具有相同的效果。並直接在URL中調用路由會導致空白頁面。 – Armin

+0

任何機會,你可以發佈工作jsfiddle或plnkr?或app.html和Index.html? – kachhalimbu

相關問題