2014-02-25 70 views
1

我有一個AgularJS搜索使用過濾器,它的工作原理。我現在希望過濾器只顯示與過濾器匹配的結果。AngularJS ng-show,ng-hide

所以,我想初始數據加載不顯示,如果我在過濾器中輸入匹配,然後顯示結果。

這是到目前爲止我的代碼:

<div class="row"> 
    <div class="large-12 columns"> 
    <div ng-app> 
     <div ng-controller="CashTransController">  
     <input type="text" ng-model="search.$"> 

     <br /> 

     <div><strong>Filter Results</strong></div> 

     <br /> 

     <div class="row"></div> 

     <br/> 

     <table border="0" class="items"> 
      <thead> 
      <tr> 
       <th>Purchaser</th> 
       <th>Redemption Code</th> 
       <th>Amount</th> 
      </tr> 
      </thead> 
      <tbody> 
      <tr ng-repeat="item in items | filter:search"> 
       <td>{{item.firstname}} {{item.lastname}}</td> 
       <td valign="top"><h3>{{item.redemption_code}}</h3></td> 
       <td><h3><a href="#">{{item.creation_date}}</a></h3></td>  
      </tr> 
      </tbody> 
     </table> 

     <br /> 
     </div> 
    </div> 
    </div> 
</div> 

回答

4

你可以簡單地添加一個ng-show表項。

我不知道你爲什麼叫你的搜索模型搜索$而不只是搜索。

試試看看這個代碼。它只會顯示的結果,如果你輸入的東西到輸入:

<div class="row"> 
    <div class="large-12 columns"> 
     <input type="text" ng-model="search"> 
     <br/> 

     <div><strong>Filter Results</strong></div> 
     <br/> 

     <div class="row"> 
      <p>{{search}}</p> 
     </div> 
     <br/> 
     <table border="0" class="items"> 
      <thead> 
      <tr> 
       <th>Purchaser</th> 
       <th>Redemption Code</th> 

       <th>Amount</th> 
      </tr> 
      </thead> 
      <tbody> 
      <tr ng-show="search" ng-repeat="item in items | filter:search"> 
       <td>{{item.firstname}} {{item.lastname}}</td> 
       <td valign="top"><h3>{{item.redemption_code}}</h3></td> 
       <td><h3><a href="#">{{item.creation_date}}</a></h3></td> 
      </tr> 
      </tbody> 
     </table> 
     <br/> 
    </div> 
</div> 
+0

作品,但搜索完成後,你刪除過濾文本,整個列表中可見,這是我不想要什麼。 –

+0

這就是你必須使用ng-model =「search」而不是ng-model =「search。$」的原因。那麼它應該在你刪除過濾文本時工作。 – DanEEStar

+0

嘿!有用。我認爲搜索。$是以前版本的angularJS的補充。 –