除非在$ scope中传递,否则AngularJS ng-include不包括视图
假设ngInclude
可以采取一条原始path是错误的吗? 我一直试图设置我的ngInclude
如下:
<div ng-include src="views/header.html"></div>
这不起作用,但如果我做这样的事情,它确实工作。
// HeaderController app.controller('HeaderCtrl', function($scope){ $scope.templates = {[ template: { url: 'views/header.html' } ]}; $scope.template = $scope.templates[0].template; });
在我的index.html
<div ng-controller="HeaderCtrl"> <div ng-include src="template.url"></div> </div>
ngInclude
只包含除范围之外的值吗? 如果是这样,为什么这样,而不是直接包含的HTML部分。
ng-include
接受一个expression式。 如果你想直接在那里指定显式的URL,你必须给一个string。
<div ng-include src="'page.html'"></div>
ng-include
,因为其他指令( ng-class
, ng-src
…)会从范围中计算一个Angularexpression式 。 没有引号( ''
),它会search范围的variables。
请注意,您不必指定src
属性。
<div ng-include src="'views/header.html'"></div>
可以重写为:( 更简单)
<div ng-include="'views/header.html'"></div>
你也可以使用ng-include作为一个元素 :
<ng-include src="'views/header.html'"></ng-include>