加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 具有谓词函数的Angular ng-repeat过滤器不能按预期

发布时间:2020-12-17 10:26:06 所属栏目:安全 来源:网络整理
导读:这是我第一次玩AngularJS,实际上,我正在按照入门教程进行操作.我想到了我会将教程脚本调整到我的理解中,只需添加一些本教程中没有的内容. 基本上,本教程中使用的手机对象是: { "age": 1,"id": "motorola-xoom","imageUrl": "img/phones/motorola-xoom.0.jpg
这是我第一次玩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过滤器仅支持数组,它只在文档中提及数组.并检查过滤器函数,如果数组参数不是数组,则返回….

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读