1

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 アクセサーを使用して/使用せずにプロパティを割り当てようとしたところ、同じ結果が得られました。

アイデアがあれば教えてください。

4

1 に答える 1