无论如何在angularjs模板中制作一个循环?

时间:2015-10-12 06:31:18

标签: javascript angularjs cordova onsen-ui

我正在使用onsen UI(angularjs)+ cordova开发应用程序。 所以我有一个评论页面,每个评论都有一个按钮"喜欢"。 当用户已经喜欢该页面时,我必须显示一个不同的按钮。 然后我创建了一个名为" active"的CSS类。 但是因为我可以使用这个类,我应该在角度表达式中创建一个循环,因为我从后端返回一个javascript对象,每个注释都有用户交互。例如:

该页面有3条评论:id 1,id 2和id 3 用户喜欢评论编号1和3。 返回的对象是: [object] [0] id => 1, [对象] [1] id => 3

然后我用angularjs循环显示注释,如下所示:

 ng-repeat="comment in comments | limitTo: 6"

好的,现在让我们尝试显示已经"喜欢"的不同按钮。 (如果用户没有"喜欢"爱好。

<button class="button btnice {{ event.event_id in interactions ? 'active' : 'normal'}}">

有可能吗?如果没有,最好的方法是什么?

1 个答案:

答案 0 :(得分:3)

这绝对可能:

在您的HTML中:

<button class="button btnice" ng-class="isLiked(commentId) ? 'active' : 'normal'">

然后,向控制器添加isLiked功能:

var likedComments = [{interaction_id: "2", value: "1", comment_id: 1}, {...}];

$scope.isLiked = function(commentId){
    return likedComments.some(function(interaction){
        return interaction.comment_id === commentId;
    });
};

这应该可以解决问题。如果true对象数组包含一个或多个likedComments的对象,则返回comment_id === commentId