'ng-include`找不到内联`ng-template`

Evi*_*key 6 javascript angularjs angularjs-ng-include angularjs-templates angularjs-ng-template

我有一个视图正在加载嵌入式文件后面text/ng-template没有找到ng-include.脚本块位于视图文件的最顶部:

<script type="text/ng-template" id="stringCondition">
    <!-- template guts -->
</script>
Run Code Online (Sandbox Code Playgroud)

我将在以后的文件中加载:

<ng-include src="'stringCondition'"></ng-include>
Run Code Online (Sandbox Code Playgroud)

但是在控制台中产生404错误:

GET http://localhost/~me/stringCondition 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)

我已经在命名上尝试了几种变体(比如最后有.html)并使用ng-include作为属性而不是高级元素.一切都没有运气.

什么可能导致嵌入式ng-template无法ng-include在同一个视图文件中注册?

更新:

正如评论和答案所指出的那样,我的代码的基本设计是正确的.但是某些事情导致ng-template(显然)无法使模板可用于系统.

我更新了我的代码以从HTML文件(而不是嵌入的模板)中提取,它工作正常.

是否有一种常见的情况,我可能会遇到这种休息ng-template

小智 15

<div ng-app>
  <script type="text/ng-template" id="stringCondition">
     Yes, yes it did.
  </script>
  Did it work? <ng-include src="'stringCondition'"></ng-include>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

我有同样的问题,并发现了这篇文章.我现在可以看到是什么导致了这个问题,所以希望这可以帮助其他人解决这个问题.

rgthree代码工作的原因是text/ng-template的脚本标记必须存在于ng-app的范围内.所以将模板放在一个单独的.js文件中是很好的,但只要确保它在HTML页面上呈现它在ng-app中,否则angular将不会意识到它并将尝试从服务器.


rgt*_*ree 1

似乎对我来说效果很好。也许您的示例代码之外还有其他事情发生。

<div ng-app>
  <script type="text/ng-template" id="stringCondition">
     Yes, yes it did.
  </script>
  Did it work? <ng-include src="'stringCondition'"></ng-include>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
Run Code Online (Sandbox Code Playgroud)