2016-02-19 45 views
0

我正在使用带ES6的angularJs。因此,每个视图都是模块。AngularJS:子状态返回父视图

模块项目:

let projectModule = angular.module('project', [ 
    uiRouter 
]) 

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

    $stateProvider 
    .state('project', { 
     url: '/projects/:origin/:owner/:name', 
     template: '<project></project>', 
     data : { pageTitle: 'Project' }, 
    }); 

}) 

.component('project', projectComponent) 

.factory('$projectResource', service); 

模块警报(它的状态是项目状态的子层):

let alertsModule = angular.module('alerts', [ 
    uiRouter 
]) 

.config(($stateProvider) => { 

    $stateProvider 
    .state('project.alerts', { 
     url: '/alerts', 
     template: '<alerts></alerts>', 
     data : { pageTitle: 'Alerts' } 
    }); 

}) 

.component('alerts', alertsComponent); 

所有视图由部件管理和从所定义的显示模板属性处于相关状态。

<alerts></alerts> 

组件被定义为这样:

import template from './alerts.html'; 
import controller from './alerts.controller'; 
import './alerts.scss'; 

let alertsComponent = { 

    restrict: 'E', 
    template: template, 
    controller: controller, 
    controllerAs: 'vm', 
    bindings: true 

}; 

export default alertsComponent; 

观点被称为这样:

<a ui-sref="project.alerts({ origin: project.origin, owner: project.owner.name, name: project.name })">Alerts</a> 

还是那个样子,如果我在项目中已经是:

<a ui-sref="project.alerts">Alerts</a> 

两个HREF能正确显示:

/项目/ github上/ btribouillet/btproject /警报

但我seing的父视图:

<project></project> 

虽然应该是:

<alerts></alerts> 

我在做什么错了?直到现在的解决方案是相互独立。但我试图建立一个面包屑模块​​,我想能够访问父状态。如果国家彼此独立,这是不可能的。

更新:

我的主要观点是app.html:

<!-- Place all UI elements intended to be present across all routes in this file --> 
<div class="site-wrapper"> 
    <navbar></navbar> 
    <div class="view" ui-view></div> 
    <navfooter></navfooter> 
</div> 
+1

我的猜测是,你忘了把你的“项目”组件html中的UI视图指令,所以孩子的状态没有地方加载英寸 – Bata

+0

我要检查。我虽然这是没有必要的,因为它有两种不同的看法。 – Brieuc

+0

确实是这样,如果你想写它作为答案,我会很高兴验证它。检查文档https://github.com/angular-ui/ui-router/wiki/Nested-States-&-Nested-Views#abstract-state-usage-examples – Brieuc

回答

1

你忘了把一个用户界面视图指示在“项目”组件的HTML,所以孩子的状态都没有的地方加载英寸

相关问题