2016-02-19 44 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,所以孩子的狀態都沒有的地方加載英寸

相關問題