Angularjs 在循环中显示两个表

Angularjs 在循环中显示两个表,angularjs,firebase,Angularjs,Firebase,我对AngularJS很陌生。 我用的是firebase 我有一组数据如下: "userId1" : { "name" : "Bobby", "comments" : { "-J_v90hh5sbJ2acmX4nq" : true } } 和评论列表 "-J_v90hh5sbJ2acmX4nq" : { "creation_date" : 1415110466568, "creator_id" : "userId1", "desc" : "dsqdsq",

我对AngularJS很陌生。 我用的是firebase

我有一组数据如下:

"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();