【问题标题】:clone backbone model attributes克隆主干模型属性
【发布时间】:2014-02-14 14:26:49
【问题描述】:

我有一个包含 10 个属性的主干模型,现在我想要 5 个属性(这 10 个属性中的)在我的另一个新创建的模型中复制/克隆。我可以通过单独获取/设置来做这件事,但我想知道,有没有更好/更简单的方法来做到这一点?

示例: modelfirst {fld1:value1, fld2: value2 ....}

new modelsecond().set({fld1: modelfirst.attributes.fld1 .... })

我想这样做:

new modelsecond().set(modelfirst.get('fld1','fld2') });

有人知道吗?

【问题讨论】:

    标签: javascript node.js backbone.js backbone-views backbone-model


    【解决方案1】:

    使用Underscore的方法(Backbone需要,你可以使用):

    new modelsecond(_.pick(_.clone(modelfirst.attributes), 'fld1', 'fld2', ...))
    

    要选择所有小写属性,您应该可以这样做

    new modelsecond(_.pick(
      _.clone(modelfirst.attributes),
      _.select(_.keys(modelfirst.attributes), 
               function(attr){ return /^[a-z]+$/.test(attr) }))
    

    【讨论】:

    • 谢谢@david,我们可以把所有的属性名都用小写吗?
    • 我在第一个模型中的所有属性名称都是大写的(例如 FIRSTNAME, LASTNAME ),但我想复制/克隆第二个模型中的小写值(例如 firstname, lastname )。
    猜你喜欢
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多