121

假设ngInclude可以采取原始路径是错误的吗?我一直在尝试将我的设置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 部分。

4

2 回答 2

327

ng-include接受一个表达式。如果要直接在其中指定显式 URL,则必须提供一个字符串。

<div ng-include src="'page.html'"></div>
于 2012-09-20T22:38:29.340 回答
1

ng-include, 因为其他指令 ( ng-class, ng-src...)从范围内评估 Angular 表达式。如果没有引号 ( ''),它将搜索范围的变量。


请注意,您不必指定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>
于 2017-04-07T09:34:49.017 回答