如何过滤有时未定义的值?

时间:2015-11-25 18:26:22

标签: javascript angularjs angularjs-filter

我有一个具有树结构的应用程序到某些对象。每个对象都有一个id,并且可能有父对象。

不幸的是,明显过滤了" {_ id:current}"当前ID未定义时(例如,在根级别),它不能正常工作。设置电流时工作正常,不工作时会发生故障。

我可以编写一个与未定义匹配的表达式实际值吗?

电子。 G:

<ol>
    <li ng-repeat='item in list | filter:{parent:current_item_id}'>
        <a ng-click='current_item_id = item._id'>{{ item }}</a>
    </li>
</ol>

如果答案是&#34;你可以&#34;#34;那很好;我已经编写了一个客户过滤器,可以做一些足够接近的事情&#39;。它不像内置的过滤器那样灵活[&#39;过滤,但不需要。

每个请求,一些示例json数据:

{
    "items":[
        {'_id':1,'name':"Parent 1"},
        {'_id':2,'name':"Parent 2"},
        {'_id':3,'name':"Child 1", "parent":1},
        {'_id':4,'name':"Child 2", "parent":2}
    ]
}

1 个答案:

答案 0 :(得分:3)

您可以创建自定义过滤器以进行相应过滤,如果您希望有一些不同的内容,请进行修改

angular.module('app').filter('myfilter', function() {
  return function(array, current_id) {
    return (array || []).filter(function(item) {
      if (typeof item.parent == 'undefined') {
        return true;
      } else {
        return item.parent == current_id;
      }
    });
  };

});