2013-07-15 116 views
0

我想要做的是根據中繼器範圍計算特定屬性的對象數組的過濾器長度。這個代碼在技術上工作(它顯示過濾器的正確的計數):AngularJS過濾器的長度精確值

<li ng-repeat="question in questions" id="{{ question.id }}"> 
    {{ question.text }} 
    <ul> 
     <li ng-repeat="answer in question.answers" id="{{ answer.id }}"> 
      {{ answer.text }} (<span ng-controller='AnswersController'>{{ (useranswers|filter:{answer_id:answer.id}).length }}</span>) 
     </li> 
    </ul> 
</li> 

的問題是,當鏡體ID是1(例如),它1101121等我匹配我想讓我的上述確切代碼完全匹配。

請讓我知道哪些支持代碼會有幫助。

+0

比較代碼在哪裏?我可能會錯過一些東西(可能),但我沒有看到你說的地方x.indexOf(y)== - 1或x == y或x === y這種性質的任何東西? – shaunhusain

回答

8

你必須對Angular說你想要一個嚴格的比較。使用Angular 1.1.5很容易,因爲篩選器filter(請參見documentation)現在有第三個參數comparator,其中true是一個非常有用的簡寫。在你的情況下,你可以簡單地做出這樣的事情:

<li ng-repeat="question in questions" id="{{ question.id }}"> 
    {{ question.text }} 
    <ul> 
     <li ng-repeat="answer in question.answers" id="{{ answer.id }}"> 
      {{ answer.text }} (<span ng-controller='AnswersController'>{{ (useranswers|filter:{answer_id:answer.id}:true).length }}</span>) 
     </li> 
    </ul> 
</li> 
+0

完美的答案。謝謝。 –