2015-05-20 125 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

相关问题