أنا معجب بوضع السمات في مشهد على هذا النحو ...
Backbone.View.extend ({ صفات: { سمة البيانات: 'mydata' } }) ؛
... ومع ذلك ، يؤدي هذا إلى حدوث خطأ بسبب الواصلة في المفتاح "data-attr".
خطأ في بناء الجملة لم يتم اكتشافه: رمز مميز غير متوقع -أدرك أن هذا رمز مميز غير قانوني في كائن ذو قيمة مفتاح جافا سكريبت ، ومع ذلك كنت آمل أن يقدم Backbone بعض الحلول لذلك ، نظرًا لحقيقة أن تمرير سمات البيانات هو أحد السيناريوهات الأكثر احتمالًا. لقد كنت أعمل على حلها من خلال تعيين السمة داخل دالة العرض باستخدام jQuery:
تقديم: function () { هذا. $ el.attr ('data-attr'، 'mydata "')؛ }
هذا يعمل ، لكنني فكرت في السؤال عما إذا كان هناك خيار آخر.
نعم - إنه مجرد كائن JavaScript. استخدم المفاتيح المقتبسة.
attributes: {
"data-attr": "mydata"
}
آه ، ظننت أنني جربت ذلك! شكرا!
ما الذي تقترحه لتمرير سمة بيانات إلى عنصر DOM للعرض من السمات داخل نموذج طريقة العرض؟ كما...
صفات: { "سمة البيانات": this.model.foo }
أفقد مجال الإشارة إلى "هذا".
خطأ في النوع غير معلوم: لا يمكن قراءة خاصية "النموذج" من undefined
يمكنك استخدام وظيفة مثل:
attributes: function() {
return {
'data-attr': this.model.foo
};
}
مذهل. هذا يعمل بشكل مثالي. شكرا لك على الردود السريعة!
مرحبًا بك ، لكن في المستقبل ، من فضلك لا تستخدم تذاكر الأخطاء للدعم الفني مثل هذا - جرب قناة IRC أو القائمة البريدية أولاً.
سعيد ل. لقد جربت ذلك أولاً ، لكن لا يوجد سوى مستخدم واحد آخر في DocumentCloud IRC ، وهو Turjakas الذي لم يكن يستجيب.
يجب أن أخطأ في الكتابة - يوجد 242 شخصًا في #documentcloud على freenode الآن.
التعليق الأكثر فائدة
يمكنك استخدام وظيفة مثل: