过滤列表并仅返回具有匹配条件的项目,javascript

时间:2015-05-21 06:54:20

标签: javascript angularjs angularjs-directive

我正在过滤指令中的对象中的列表项,如下所示:

link: function (scope, elem, attr, controller) {
  var matches = {};
  var original = clone(controller.items);
  scope.$on('ecal:searchbox-valuechanged', function (event, message) {
    for(var key in original) {
      if (coriginal.hasOwnProperty(key)) {
        for(var i=0; i < original[key].length; i++) {
          if (original[key][i].name.indexOf(message.data.search) >= 0) {
            matches[key] = original[key];
          };
        }
      }
    }
    controller.items = matches;
  });
  function clone(obj) {
    if (null == obj || "object" != typeof obj) return obj;
    var copy = obj.constructor();
    for (var attr in obj) {
      if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr];
    }
    return copy;
  }
}

问题在于,controler.items最初是空的,等待服务更新其数据,当编译指令时,original变量为空,因此克隆它是无用的。

我该怎么做?

0 个答案:

没有答案