AngularJS无法从$ templateCache

时间:2015-05-27 07:11:45

标签: angularjs caching angularjs-ng-template

我无法从模板缓存中获取模板片段(如下所示:)

<script id="sub1.html" type="text/ng-template">
<div> sub1 Content</div></script>

我认为这是因为index.html文件中的第11行

<div class="hiddenContent" ng-include="'templates.html'">

如果我用templates.html替换这一行,它就可以了。

如何使这项工作保持第11行?

查看Plunkr Code

中的代码

1 个答案:

答案 0 :(得分:0)

可行,尝试将模板移动到index.html

http://plnkr.co/edit/MOwCD8UyRT2IBmaeeAMX?p=preview

<html ng-app="myApp">

<head>
  <script data-require="angular.js@1.2.16" data-semver="1.2.16" src="https://code.angularjs.org/1.2.16/angular.js"></script>
  <link rel="stylesheet" href="style.css" />
  <script src="script.js"></script>
</head>

<body ng-controller="myCtrl">
  <div class="hiddenContent" ng-include="'templates.html'">
  </div>
  <h1>Hello Plunker!</h1>
  {{test}}
  <myapp-directive></myapp-directive>

  </div>
</body>

</html>

<script id="sub1.html" type="text/ng-template">
  <div>sub1 Content</div>
</script>

<script id="sub2.html" type="text/ng-template">
  <div>sub2 Content</div>
</script>

问题可能是AngularJS在另一个文件中找不到ng-template。如果在templateCache中定义sub1.html,它也可以工作:

var app=angular.module("myApp",[]);
app.run(["$templateCache", function ($templateCache) {
  $templateCache.put("sub1.html","<div> sub1 Content</div>");
}]);