除非在$ scope中传递,否则AngularJS ng-include不包含视图

Cha*_*had 121 angularjs angularjs-ng-include

假设ngInclude可以采取原始路径是错误的吗?我一直试着设置ngInclude如下:

<div ng-include src="views/header.html"></div>
Run Code Online (Sandbox Code Playgroud)

这不起作用,但如果我做这样的事情它确实有效.

// HeaderController
app.controller('HeaderCtrl', function($scope){
   $scope.templates = {[
     template: { url: 'views/header.html' }
   ]};

   $scope.template = $scope.templates[0].template;
});
Run Code Online (Sandbox Code Playgroud)

在我的index.html中

<div ng-controller="HeaderCtrl">
  <div ng-include src="template.url"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

难道ngInclude仅仅只是关闭范围的值?如果是这样,为什么会这样,而不是直接包含html部分.

Tos*_*osh 327

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

<div ng-include src="'page.html'"></div>
Run Code Online (Sandbox Code Playgroud)

  • 今天下午花了很多时间试图弄清楚这个.*当然*它需要是一个字符串.这使*完全*有意义. (44认同)
  • 小单引号解决了这个问题.我看不出确切的变化(我的眼睛不好).请注意在双引号内添加单引号. (5认同)
  • 还有一件事:页面不能将下划线作为文件名. (4认同)