可以使用此angularJS html属性:ng-include =" {{...}}"?

时间:2014-08-11 12:14:46

标签: javascript html html5 angularjs

我正在处理一个应该在网页中加载帖子的小项目。我认为我可以使用角度ng-repeat快速创建帖子,然后使用ng-include加载帖子格式化的内容,这是一个小的HTML页面。这是代码:

<section ng-controller="PostController as posts" ng-show="!$first">
    <div ng-repeat="post in posts.info">
        <h2>{{post.title}}</h2>
        <div ng-include="posts/{{post.content}}"></div> //here is the problem
        <span class="date">{{post.createdOn}}</span>
        <span class="author">{{post.author}}</span>
    </div>
</section>

我从JSON导入标题,日期和作者的内容,并且它有效。 当我加载页面时,我看到应该加载的html页面丢失了。我将帖子的主要文本存储在名为&#34; posts&#34;的文件夹中,并且在其中,将有帖子。 所以我查看了该问题的呈现页面,我看到AngularJS似乎评论了无法加载的内容:我实际上看到<!-- ngInclude: '{{post.content}}' -->

所以我的问题是:如何告诉AngularJS从HTML标记属性中读取{{ }}的结果?

3 个答案:

答案 0 :(得分:3)

这是一个demonstrates这是如何工作的Plunker。结果是您不需要{{}}。只需用双引号指定Angular表达式,如下所示:

<div ng-include="post.content"></div>

答案 1 :(得分:1)

这项工作:

<div ng-include="'post/'+ post.content">

答案 2 :(得分:0)

经过很长一段时间,我解决了我的问题! 我发现如果我编写以下代码

,它会起作用
  <div ng-include="'posts/testPost.html'" class="ng-binding"></div>

不要问我这背后的理论部分,因为我还没有完全理解它是如何运作的。