AngularJS - 自定义过滤器不起作用

时间:2018-03-06 09:00:37

标签: angularjs

我想找到这些名字,从给定的字母开始,即' m'使用角度自定义过滤器。在这里,我应该在解决方案中获得2个条目,但我的视图部分仅显示无序列表的两个项目符号,而不显示以' m'开头的名称。

这是我的过滤器:

 $scope.stud = [
                  {sid:1,sname:'john',gender:1,type:"fulltime"},
                  {sid:2,sname:'ashish',gender:1,type:"fulltime"},
                  {sid:3,sname:'naina',gender:2,type:"parttime"},
                  {sid:4,sname:'mitesh',gender:3,type:"fulltime"},
                  {sid:5,sname:'mithila',gender:2,type:"parttime"}
                ]

这是控制器:

<h3> Names Start with M</h3>
<ul>
   <li ng-repeat="s in stud | startwith : 'm'">
       {{stud.sname}} 
   </li>
 </ul> 

这是观点:

xsl:for-each

1 个答案:

答案 0 :(得分:0)

这是因为在您的自定义过滤器中,您没有返回对象而是返回字符串,因此以下内容将返回空,因为您的字符串不具有sname属性

<ul>
   <li ng-repeat="s in stud | startwith : 'm'">
       {{s.sname}} 
   </li>
</ul> 

将{{s.sname}}行更改为{{s}}会为您提供结果。

<ul>
   <li ng-repeat="s in stud | startwith : 'm'">
       {{s}} 
   </li>
</ul> 

Demo