【问题标题】:Angualrjs Filter array in controller控制器中的Angularjs过滤器数组
【发布时间】:2016-07-28 02:42:09
【问题描述】:

我有示例 Json。基于键值,我更健康。

拟合器没有对精确值进行排序

例子:

angular.module('myApp').controller('testController', ['$filter', '$scope',
function($filter, $scope) {

    var obj = '[{"id":"1","m_id":1,"value":"Male"},
                {"id":"2","m_id":1,"value":"Female"},
                {"id":"3","m_id":1,"value":"Other"},
                {"id":"45","m_id":9,"value":"Single"},
                {"id":"46","m_id":9,"value":"Married"},
                {"id":"47","m_id":10,"value":"Father"},
                {"id":"48","m_id":10,"value":"Mother"},
                {"id":"61","m_id":10,"value":"Cousin"},
                {"id":"62","m_id":10,"value":"Other"}]';

    var obj1 = JSON.parse(obj);
    var result = $filter('filter')(obj1, {
        m_id : "1"
    });
}]);

输出:

[{"id":"1","m_id":1,"value":"Male"},
 {"id":"2","m_id":1,"value":"Female"},
 {"id":"3","m_id":1,"value":"Other"},
 {"id":"47","m_id":10,"value":"Father"},
 {"id":"48","m_id":10,"value":"Mother"},
 {"id":"61","m_id":10,"value":"Cousin"},
 {"id":"62","m_id":10,"value":"Other"}]

预期输出:

[{"id":"1","m_id":1,"value":"Male"},
 {"id":"2","m_id":1,"value":"Female"},
 {"id":"3","m_id":1,"value":"Other"}]

Click here

【问题讨论】:

    标签: angularjs filter


    【解决方案1】:

    改变

    var result = $filter('filter')(obj1, {
            m_id : "1"
    });
    

    var result = $filter('filter')(obj1, function(item) { return item && item.m_id == 1; });
    

    演示here

    【讨论】:

    • 我试过但得到相同的输出。 (使用 m_id 1 和 10)
    • 还有什么建议吗?
    【解决方案2】:

    你也可以这样做,使用Javascript Filter()

    var result = obj1.filter(function(v){
        return v.m_id == 1;
    });
    

    DEMO


    AngularJS v.1.1.3 中,确切的过滤器是 provided natively

    var result = $filter('filter')(obj1, 
        {m_id : 1},
        true // ==========> this is for exact match
    );
    

    Working DEMO

    【讨论】:

    • 问题是针对 Angular 的(具有自定义表达式等的更复杂的过滤系统)
    • @Nathan 其本机 Javascript 代码正在运行。
    • @Nathan Angular 过滤器没有特殊能力。
    • 原生filter 代码更易读,更简洁易懂。
    • @Nathan:公平地说,这是一个合理的论点。我完全赞成向他们展示两种方法!
    猜你喜欢
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多