2013-07-15 79 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

完美的答案。谢谢。 –