Ember.js: قيمة خاصية الصفيف المشتركة بين مثيلات المكون

تم إنشاؤها على ١١ ديسمبر ٢٠١٣  ·  3تعليقات  ·  مصدر: emberjs/ember.js

لست متأكدًا تمامًا مما إذا كنت قد فعلت شيئًا خاطئًا ، ولكن ها هو.
لقد أنشأت مكونًا مع بعض الخصائص ، وكلها تعمل بشكل صحيح في نطاق مثيل المكون الخاص بها. ومع ذلك ، عندما أضفت خاصية ذات قيمة مصفوفة ، فإنها تتصرف بشكل غير متوقع: عندما يتم دفع عنصر إلى مصفوفة مكون عبر set ، يتم دفعه إلى خاصية كل مكون.

التعليق الأكثر فائدة

أفترض أنك حصلت على شيء مثل:

App.MyThingsComponent = Ember.Component.extend({
  things: []
}):

سيستخدم هذا نفس مثيل المصفوفة لجميع المكونات لأنه يتم تقييمها عند تعريف الفئة ، وليس عند إنشاء مثيل لها.

يمكنك إصلاح ذلك عن طريق إنشاء مثيل للمصفوفة عند تهيئة المكون:

App.MyThingsComponent = Ember.Component.extend({
  things: null,
  setupThings: function(){
    this.set("things", []);
  }.on("init")
}):

ستحصل الآن على مثيل مصفوفة جديد لكل مثيل مكون ويجب أن تتصرف الأشياء بالشكل الذي تتوقعه.

ح

ال 3 كومينتر

أفترض أنك حصلت على شيء مثل:

App.MyThingsComponent = Ember.Component.extend({
  things: []
}):

سيستخدم هذا نفس مثيل المصفوفة لجميع المكونات لأنه يتم تقييمها عند تعريف الفئة ، وليس عند إنشاء مثيل لها.

يمكنك إصلاح ذلك عن طريق إنشاء مثيل للمصفوفة عند تهيئة المكون:

App.MyThingsComponent = Ember.Component.extend({
  things: null,
  setupThings: function(){
    this.set("things", []);
  }.on("init")
}):

ستحصل الآن على مثيل مصفوفة جديد لكل مثيل مكون ويجب أن تتصرف الأشياء بالشكل الذي تتوقعه.

ح

شكرا جزيلا! فهل هذا السلوك المقصود؟ كيف لا تعمل بهذه الطريقة مع السلاسل على سبيل المثال؟

Geokoumpa هذا بسبب الميراث النموذجي منشور مدونة شامل من

http://yehudakatz.com/2011/08/12/understanding-prototypes-in-javascript/

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات