Ember.js 一次设置多个属性

Ember.js 一次设置多个属性,ember.js,Ember.js,我正在通过一系列set调用设置许多属性,例如 this.set('prop1', value1); this.set('prop2', value2); ....... 是否有一种方法可以在一次调用中实现这一点(类似于创建对象时)?例如 我仍然不能完全理解余烬的继承模型。也许是类似于重新打开?的东西,正如@oruen所指出的,您正在描述setProperties(…) 需要注意的一个潜在问题是,根据JS规范,对象上属性的顺序是不确定的。(见附件) 如果您不关心顺序,或者确信目标JS实现将尊重您

我正在通过一系列set调用设置许多属性,例如

this.set('prop1', value1);
this.set('prop2', value2);
.......
是否有一种方法可以在一次调用中实现这一点(类似于创建对象时)?例如

我仍然不能完全理解余烬的继承模型。也许是类似于重新打开?

的东西,正如@oruen所指出的,您正在描述setProperties(…)

需要注意的一个潜在问题是,根据JS规范,对象上属性的顺序是不确定的。(见附件)

如果您不关心顺序,或者确信目标JS实现将尊重您的顺序,那么setProperties应该适合您

当设置多个属性时,您应该考虑使用<强>烬.NealPrimyTochange()>强>和<强>烬.EntRealTyType()< <强> >。前者暂停观察者触发器,后者恢复并刷新。这种方法可以提高性能。setProperties为您执行此操作

同样值得注意的是Ember.changeProperties,它接受回调并调用Ember.beginPropertyChanges,然后调用回调,然后调用Ember.endPropertyChanges,即使回调引发了异常。用法示例:

Ember.changeProperties(function() {
  obj1.set('foo', mayBlowUpWhenSet);
  obj2.set('bar', baz);
});

希望有帮助

实际上有一个函数用于此:
setProperties
。您可以这样使用它:

obj.setProperties({prop1: value1, prop2: value2})

obj
应该是
Ember.Object

Hm的实例,如果我编写这个API,我会使
set
多态,并接受一个键和一个值,或者一个由键值对组成的对象。但是,在文档中没有看到任何与此相关的内容。亲爱的谷歌,请将其编入索引:“mass assignment Ember.js”这非常有效,但我遇到的副作用是,我有一个可观测对象,它可以观测三个属性,即使我只进行一次这样的大规模调用,如果所有属性都被调用,它会触发三次。@JohnCho也许我这里的anwser能帮上忙:太棒了。我得试试这个。我的项目被搁置几乎是件好事。我找了一段时间了。。。谢谢你的解释。它为我带来了魅力。@ouren是类似于Ember.setProperties(obj,{prop:value})的东西吗?这样它就可以在所有物体上工作,而不仅仅是余烬物体?很漂亮。我需要执行回滚,但它会不断触发一些方法,这些方法在重置所有属性之前观察属性。因此在我的代码中造成了巨大的破坏。这个Ember.changeProperties是将我需要的所有内容设置为null并执行model.rollback()的关键。
obj.setProperties({prop1: value1, prop2: value2})