我知道這是一個古老的線程,但思想應該指出的是,從角度1.5+開始,我們已經介紹了組件。而不是處理具有命名視圖和所有廢話的路由或使用ngInclude你應該使用一個頭部組件和頁腳組件。只需將這些添加到您的index.html(或任何您稱之爲主HTML模板)和瞧。
例如(這是採用了棱角分明材料和缺少佈局模塊,但希望你明白了吧)
1.添加到index.html的
<layout-header></layout-header>
2。 header.component.js(你不需要所有這些,但我認爲這很有幫助)
(function() {
'use strict';
angular
.module('layout')
.component('layoutHeader', {
templateUrl: 'layout/header.html',
bindings: {},
controller: Controller
});
Controller.$inject = [];
function Controller() {
var ctrl = this;
initialize();
////////////////////
function initialize(){
}
}
}());
3.標題。html
<md-toolbar>
<div class="md-toolbar-tools">
<h2>
<span>Really Awesome Title!!!!</span>
</h2>
<span flex></span>
<md-button class="md-icon-button" aria-label="More">
<md-icon class="material-icons">more_vert</md-icon>
</md-button>
</div>
</md-toolbar>
問題在於,如果將控制器添加到主視圖,我無法從控制器訪問數據。我認爲這是由於ng-view和$ routeProvider。因爲$ routeProvider包含哪些控制器需要用於數據呈現 – niran 2013-04-30 04:03:29
新控制器中的作用域是父控制器作用域的子域。下面是我創建的一個更好的示例,用於解釋這個父子關係:http://jsfiddle.net/basarat/QQNRD/ – basarat 2013-04-30 04:09:48
當您在主頁面中直接使用Controller並且沒有$ routProvider Innjection時,此工作正常。如果使用$ routProvider,它將獲取指定的控制器並呈現它。在這裏,我正在嘗試使用一個通用控制器,它顯示所有頂部和左側導航,而不管視圖更改 – niran 2013-04-30 04:37:17