Angularjs 在循环中显示两个表
我对AngularJS很陌生。 我用的是firebase 我有一组数据如下:Angularjs 在循环中显示两个表,angularjs,firebase,Angularjs,Firebase,我对AngularJS很陌生。 我用的是firebase 我有一组数据如下: "userId1" : { "name" : "Bobby", "comments" : { "-J_v90hh5sbJ2acmX4nq" : true } } 和评论列表 "-J_v90hh5sbJ2acmX4nq" : { "creation_date" : 1415110466568, "creator_id" : "userId1", "desc" : "dsqdsq",
"userId1" : {
"name" : "Bobby",
"comments" : {
"-J_v90hh5sbJ2acmX4nq" : true
}
}
和评论列表
"-J_v90hh5sbJ2acmX4nq" : {
"creation_date" : 1415110466568,
"creator_id" : "userId1",
"desc" : "dsqdsq",
"type" : "suggest"
}
所以我想做的是显示我们朋友博比的所有评论
.controller('CommentsCtrl', function($scope, $firebase){
var creator_id = 'userId1'; // Test purpose
var userCommentsRef = new Firebase("https://awesome.firebaseio.com/users/"+creator_id+'/comments');
var commentsRef = new Firebase("https://awesome.firebaseio.com/comments");
var userCommentsSync = $firebase(userCommentsRef);
var commentsSync = $firebase(commentsRef);
var userComments = userCommentsSync.$asObject();
var comments = commentsSync.$asObject();
$scope.userComments = userComments;
$scope.comments = comments;
})
您知道我应该如何继续显示此内容,但要确保如果注释已被删除(并且密钥仍然存在),则说明将不会显示
<ion-list ng-controller="CommentsCtrl">
<ul class="list">
<li class="item item-checkbox item-checkbox-right" ng-repeat="(key,item) in userComments">
{{comments[key].desc}} // Working, but don't want deleted comments
</li>
</ul>
</ion-list>
-
{{comments[key].desc}}//正在工作,但不希望删除注释
这是处理这种情况的正确方法吗?
我如何告诉我的控制器仅显示现有注释?您可以通过以下方式使用ng repeat block中的过滤器:
<li ng-repeat="(key,item) in userComments | filter:{deleted:false}">
{{comments[key].desc}} // Working, but don't want deleted comments
</li>
可以通过以下方式在ng重复块中使用过滤器:
<li ng-repeat="(key,item) in userComments | filter:{deleted:false}">
{{comments[key].desc}} // Working, but don't want deleted comments
</li>
可以通过以下方式在ng重复块中使用过滤器:
<li ng-repeat="(key,item) in userComments | filter:{deleted:false}">
{{comments[key].desc}} // Working, but don't want deleted comments
</li>
可以通过以下方式在ng重复块中使用过滤器:
<li ng-repeat="(key,item) in userComments | filter:{deleted:false}">
{{comments[key].desc}} // Working, but don't want deleted comments
</li>
不,这不是正确的方法。使用集合时,请使用
$asArray
而不是$asObject
。发件人:
同步数组应用于将被排序、迭代和具有唯一ID的任何对象列表
对象对于存储键/值对以及不用作集合的单个记录非常有用
此外,不需要删除参数。您只需从用户索引中删除已删除的注释即可。然后,如果它存在于该列表中,则不会将其删除。不需要额外的过滤幻想
也就是说,您可能还想查看。有了这些,再加上轻微的数据结构更改,您就可以匹配属性为deleted
等于false
的项目,而不是按角度对客户端进行排序
因此,总而言之:
var fbRef = new Firebase("https://awesome.firebaseio.com/");
var userCommentsRef =
fbRef.child("users" + creator_id + "/comments")
.orderBy('deleted')
.startAt(false)
.endAt(false);
$scope.userComments = $firebase(userCommentsRef).$asArray();
不,这不是正确的方法。使用集合时,请使用
$asArray
而不是$asObject
。发件人:
同步数组应用于将被排序、迭代和具有唯一ID的任何对象列表
对象对于存储键/值对以及不用作集合的单个记录非常有用
此外,不需要删除参数。您只需从用户索引中删除已删除的注释即可。然后,如果它存在于该列表中,则不会将其删除。不需要额外的过滤幻想
也就是说,您可能还想查看。有了这些,再加上轻微的数据结构更改,您就可以匹配属性为deleted
等于false
的项目,而不是按角度对客户端进行排序
因此,总而言之:
var fbRef = new Firebase("https://awesome.firebaseio.com/");
var userCommentsRef =
fbRef.child("users" + creator_id + "/comments")
.orderBy('deleted')
.startAt(false)
.endAt(false);
$scope.userComments = $firebase(userCommentsRef).$asArray();
不,这不是正确的方法。使用集合时,请使用
$asArray
而不是$asObject
。发件人:
同步数组应用于将被排序、迭代和具有唯一ID的任何对象列表
对象对于存储键/值对以及不用作集合的单个记录非常有用
此外,不需要删除参数。您只需从用户索引中删除已删除的注释即可。然后,如果它存在于该列表中,则不会将其删除。不需要额外的过滤幻想
也就是说,您可能还想查看。有了这些,再加上轻微的数据结构更改,您就可以匹配属性为deleted
等于false
的项目,而不是按角度对客户端进行排序
因此,总而言之:
var fbRef = new Firebase("https://awesome.firebaseio.com/");
var userCommentsRef =
fbRef.child("users" + creator_id + "/comments")
.orderBy('deleted')
.startAt(false)
.endAt(false);
$scope.userComments = $firebase(userCommentsRef).$asArray();
不,这不是正确的方法。使用集合时,请使用
$asArray
而不是$asObject
。发件人:
同步数组应用于将被排序、迭代和具有唯一ID的任何对象列表
对象对于存储键/值对以及不用作集合的单个记录非常有用
此外,不需要删除参数。您只需从用户索引中删除已删除的注释即可。然后,如果它存在于该列表中,则不会将其删除。不需要额外的过滤幻想
也就是说,您可能还想查看。有了这些,再加上轻微的数据结构更改,您就可以匹配属性为deleted
等于false
的项目,而不是按角度对客户端进行排序
因此,总而言之:
var fbRef = new Firebase("https://awesome.firebaseio.com/");
var userCommentsRef =
fbRef.child("users" + creator_id + "/comments")
.orderBy('deleted')
.startAt(false)
.endAt(false);
$scope.userComments = $firebase(userCommentsRef).$asArray();