【问题标题】:Using _.matches() and to filter Backbone models使用 _.matches() 并过滤 Backbone 模型
【发布时间】:2014-12-05 20:38:49
【问题描述】:

我想过滤所有具有多个相同键/值的 Backbone 模型。例如,我想匹配 ID 为 123 且名称为“John”的所有/第一个模型。

我知道还有其他方法可以做到这一点,但想利用 matches() 方法。

是否可以使用 Underscore 的 matches() 方法创建一个函数以传递给 filterfind 以查找 Backbone 模型?

var search_fn = _.matches({id: 123, type: 'John'});
var should_be_active = _.find(master_model_array, search_fn);

【问题讨论】:

  • 不知道为什么;您有具体问题吗?

标签: javascript backbone.js underscore.js


【解决方案1】:

是的,它肯定可以工作,类似于您所做的,但使用“过滤器”。

重申:

// Sample data
var x = {name:"j", id: 1},
    y = {name: "j", id: 2},
    z = {name: "j", id: 1, more: "data"},
    match = _.matches({name: "j", id: 1});
var list = [x,y,z];

var result = _.filter(list, match);

这会导致 x 和 z 符合条件。 jsFiddle

希望对你有帮助。

【讨论】:

  • 此代码是否适用于 Backbone 模型(相对于对象字面量 x、y 和 z)?
  • 此外,除了filter 方法之外,您的代码还可以使用find 方法工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多