这是我第一次玩AngularJS,实际上,我正在按照入门教程进行操作.我想到了我会将教程脚本调整到我的理解中,只需添加一些本教程中没有的内容.
基本上,本教程中使用的手机对象是:
{ "age": 1,"id": "motorola-xoom","imageUrl": "img/phones/motorola-xoom.0.jpg","name": "MOTOROLA XOOM™","snippet": "The Next,Next Generation..." }
我试图做的是添加一个自动填充的选择框来订购列表:
<select ng-model="orderProp"> <option ng-repeat="(key,value) in phones[0]" value="{{key}}"> {{labels[key]}} </option> </select>
并为控制器添加了模型标签:
$scope.labels = { "name": "Phone name","snippet": "Description","age": "Newest",};
它按预期工作,除了我只想过滤上面的3个属性,所以我认为很容易添加自定义谓词函数进行过滤,如下所示:
$scope.isPhonePropFilterable = function (propName) { console.log('it DOES NOT get here!!!'); return propName == 'name' || propName != 'snippet' || propName != 'age'; };
并将其添加到ng-repeat中
<option ng-repeat="(key,value) in phones[0] | filter:isPhonePropFilterable" value="{{key}}">
令我惊讶的是,它并不像我想象的那么容易,我的过滤功能没有被调用.
在此处查看:plunker
我做错了什么吗?
编辑:ng-repeat过滤器仅支持过滤数组,而不支持对象.如果数组参数不是数组,则过滤函数返回…
嗯,这是我的错. Ng-repeat过滤器仅支持数组,它只在文档中提及数组.并检查过滤器函数,如果数组参数不是数组,则返回….
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。