Emberでは、これが私がしていることです:
これらのオブジェクトを宣言します
MyObject = Ember.Object.extend({
//some serialization logic
});
FormViewContainer = MyObject .extend({
type: "FormViewContainer",
label: "",
options: {
css: "",
class: "",
attr: []
},
items:[]
});
FormViewField = MyObject.extend({
type: "FormViewLibreField",
isCodif: false,
question: {},
answer: undefined,
options: {
css: "",
class: "",
attr: []
}
});
次に、私のアプリで:
var cont = FormViewContainer.create({
label: "My Label",
options: {
class: "cssclassestuff"
}
});
Data.Questions.forEach(function (c) {
var field = FormViewField.create();
field.set("question",c);
cont.get('items').push(field);
});
//items are in the array, they are 6!
cont.get('items').length == 6
それは私が得られない部分です。私は(おそらく)新しいインスタンスを作成しますが、私は
FormViewContainer.create().get('items').length == 6
Object.Create() は実際に、オブジェクト コンストラクターを介して、他のインスタンスからこの新しいインスタンスに項目をコピーしました!
「アイテム」プロパティをコピーしただけで、ラベルとオプションは影響を受けません。
get/set アクセサーを使用して/使用せずにプロパティを割り当てようとしたところ、同じ結果が得られました。
アイデアがあれば教えてください。