2016-02-20 30 views
1

如果沒有生成的值,我想在特定值的ng-repeat過濾中隱藏外層過濾器div由內部過濾器,這是可能的?Angular ng-repeat如果內層過濾器沒有值,則隱藏外層過濾器

<div class="feedEntry" ng-repeat="entry in entries | orderBy:'-' track by $index" ng-if="entry.userID" ng-if="entry.hasFollowing"> 
    {{entry.hasFollowing}} 
    <span ng-repeat="follow in follows | filter:{following:entry.userID, follower:currentUser.userID}"> 
     <div class="feedUserSubmission" ng-init="entry.hasFollowing = true"> 
      {{entry.name}} 
     </div> 
    </span> 
</div> 

回答

2

嗯,這裏是一個解決辦法,如果我不能找到一個解決方案,我會怎麼做。

您只需執行內部ng-repeat中的$parent.showParent = true,該內部ng-repeat僅在內部ng-repeat的過濾結果影響外部ng-repeat範圍時執行。

然後你會做這樣的事情ng-show="showParent"在外NG重複

<div class="feedEntry" ng-repeat="entry in entries | orderBy:'-' track by $index" ng-show="showParent" ng-if="entry.userID" ng-if="entry.hasFollowing"> 
    {{entry.hasFollowing}} 
    <span ng-repeat="follow in follows | filter:{following:entry.userID, follower:currentUser.userID}" ng-init="$parent.showParent = true"> 

     <div class="feedUserSubmission" ng-init="entry.hasFollowing = true"> 
      {{entry.name}} 
     </div> 
    </span> 
</div> 
+0

這並沒有工作,這一切都藏 – Jordash

+0

@Jordash看看這個[小提琴](http://jsfiddle.net/tbb3os6a/)。我做了同樣的事情,但在ng-repeat中使用ng-init –

+0

這非常棒! – Jordash

1

如果你想隱藏的所有內容意父DIV:

<div ng-show="(follows | filter:filterByGroup(entry)).length"> 
    <div class="feedEntry" ng-repeat="entry in entries | orderBy:'-' track by $index" ng-if="entry.userID" ng-if="entry.hasFollowing"> 
     ... 
    </div> 
</div> 
1

你可以利用NG隱藏與內過濾條件

NG隱藏=「(如下| filter:{following:entry.userID,follower:currentUser.userID})。length == 0「

eg

<div class="feedEntry" ng-repeat="entry in entries | orderBy:'-' track by $index" ng-if="entry.userID" ng-if="entry.hasFollowing" ng-hide="(follows | filter:{following:entry.userID, follower:currentUser.userID}).length == 0"> 
    {{entry.hasFollowing}} 
    <span ng-repeat="follow in follows | filter:{following:entry.userID, follower:currentUser.userID}"> 
     <div class="feedUserSubmission" ng-init="entry.hasFollowing = true"> 
      {{entry.name}} 
     </div> 
    </span> 
</div>