Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在angularjs模板中是否还有循环?_Javascript_Angularjs_Cordova_Onsen Ui - Fatal编程技术网

Javascript 在angularjs模板中是否还有循环?

Javascript 在angularjs模板中是否还有循环?,javascript,angularjs,cordova,onsen-ui,Javascript,Angularjs,Cordova,Onsen Ui,我正在开发一个带有onsen UI(angularjs)+cordova的应用程序。 所以我有一个带有评论的页面,每个评论都有一个按钮“like”。 当用户已经喜欢这个页面时,我必须显示一个不同的按钮。 然后我创建了一个名为“active”的CSS类。 但为了使用这个类,我应该在angular表达式中创建一个循环,因为我从后端返回一个javascript对象,每个注释都有用户交互。例如: 该页面有3条注释:ID1、ID2和ID3 用户喜欢1号和3号评论。 返回的对象是: [object][0]i

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

该页面有3条注释:ID1、ID2和ID3 用户喜欢1号和3号评论。 返回的对象是: [object][0]id=>1, [object][1]id=>3

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

 ng-repeat="comment in comments | limitTo: 6"
好的,现在让我们尝试为已经“喜欢”(使用活动css类)的用户显示不同的按钮,如果用户还没有“喜欢”,则显示普通按钮



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

这是绝对可能的:

在HTML中:

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

这应该能奏效。如果对象的
likedComments
数组包含一个或多个具有
comment\u id===commentId的对象,则返回
true

对象更难迭代以查找注释。如果该对象仅包含注释ID列表,则最好使用数组。您将如何构造对象?因为还有其他交互类型。但是我需要检查的是command_id,因为其他交互有comment_id=null
ng class=“isLiked(commentId)?‘active’:‘normal’
@harleydavi:更改id后它对您有效吗?我还改进了答案中的代码。嘿,Cerburs,谢谢你的关注。不幸的是,它还没有起作用。我没有取消你的变量“交互”。我正在使用$scope.interaction并试图更改它,但没有成功。HTML中的commentID是正确的。
<button class="button btnice" ng-class="isLiked(commentId) ? 'active' : 'normal'">
var likedComments = [{interaction_id: "2", value: "1", comment_id: 1}, {...}];

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