لست متأكدًا تمامًا مما إذا كنت قد فعلت شيئًا خاطئًا ، ولكن ها هو.
لقد أنشأت مكونًا مع بعض الخصائص ، وكلها تعمل بشكل صحيح في نطاق مثيل المكون الخاص بها. ومع ذلك ، عندما أضفت خاصية ذات قيمة مصفوفة ، فإنها تتصرف بشكل غير متوقع: عندما يتم دفع عنصر إلى مصفوفة مكون عبر set ، يتم دفعه إلى خاصية كل مكون.
أفترض أنك حصلت على شيء مثل:
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/
التعليق الأكثر فائدة
أفترض أنك حصلت على شيء مثل:
سيستخدم هذا نفس مثيل المصفوفة لجميع المكونات لأنه يتم تقييمها عند تعريف الفئة ، وليس عند إنشاء مثيل لها.
يمكنك إصلاح ذلك عن طريق إنشاء مثيل للمصفوفة عند تهيئة المكون:
ستحصل الآن على مثيل مصفوفة جديد لكل مثيل مكون ويجب أن تتصرف الأشياء بالشكل الذي تتوقعه.
ح