我知道这是一个古老的线程,但思想应该指出的是,从角度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