如何在angularJS中使用ng-bind-html指令绑定数组?

时间:2015-12-29 10:43:50

标签: angularjs cordova ionic

我想为每个项目展示不同的描述。 这是控制器:

todoApp.controller('todos',function($scope,todoFactory){
      todoFactory.getTodos().success(function (data) {
        courses = x2js.xml_str2json(data);
        $scope.todos = courses.rss.channel.item;
        for(var i = 0 ; i < $scope.todos.length ; i++){
          item = $scope.todos[i];
         console.log(item.description);
          $scope.message = item.description;
        }
      });

这是html:

<div ng-controller="todos" class="list" style="padding-top: 8%">
      <div class="list card" ng-repeat="todo in todos | filter:search" >
        <div class="item item-avatar" ng-click="openLink(todo.link)" >
          <img src="Bla-Bla-Logo-1.png">
          <h2>{{todo.title}}</h2>
          <p>{{todo.pubDate | limitTo:25 }}</p>
        </div>

        <div class="item item-body">
          <p ng-bind-html="message"></p>
          <p>
            <a href="#" class="subdued">1 Like</a>
            <a href="#" class="subdued">5 Comments</a>
          </p>
        </div>
    </div>
    <!--end list card-->
    </div>
    <!--end todos-->

只是解释代码我得到xml并转换为json所以todos是对象数组。 消息正在进入每个对象并获取描述(但在描述中有标签,所以我使用ng-bind-html指令正确显示它。)

我知道$ scope.message只会保留最后一个描述。如何使它属于ng-repeat所以我可以得到不同项目的不同描述?

感谢。

2 个答案:

答案 0 :(得分:2)

替换

<p ng-bind-html="message"></p>

 <p ng-bind-html="todo.description"></p>

答案 1 :(得分:1)

请提供您想要重复显示的数据。 如何表示数据。您将获得最后一个,因为它是最重要的。

“ngBind”属性告诉Angular将指定HTML元素的文本内容替换为给定表达式的值,并在该表达式的值更改时更新文本内容。

通常,您不直接使用“ngBind”,而是使用类似{{expression}}的双重卷标,它类似但不那么详细。