Backbone: لا يمكن تمرير سمات "data-" داخل طريقة سمات العرض

تم إنشاؤها على ٣ أكتوبر ٢٠١٢  ·  8تعليقات  ·  مصدر: jashkenas/backbone

أنا معجب بوضع السمات في مشهد على هذا النحو ...

Backbone.View.extend ({
 صفات: {
 سمة البيانات: 'mydata'
 }
 }) ؛

... ومع ذلك ، يؤدي هذا إلى حدوث خطأ بسبب الواصلة في المفتاح "data-attr".

خطأ في بناء الجملة لم يتم اكتشافه: رمز مميز غير متوقع -
أدرك أن هذا رمز مميز غير قانوني في كائن ذو قيمة مفتاح جافا سكريبت ، ومع ذلك كنت آمل أن يقدم Backbone بعض الحلول لذلك ، نظرًا لحقيقة أن تمرير سمات البيانات هو أحد السيناريوهات الأكثر احتمالًا. لقد كنت أعمل على حلها من خلال تعيين السمة داخل دالة العرض باستخدام jQuery:
تقديم: function () {
 هذا. $ el.attr ('data-attr'، 'mydata "')؛
 }

هذا يعمل ، لكنني فكرت في السؤال عما إذا كان هناك خيار آخر.

question

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

يمكنك استخدام وظيفة مثل:

attributes: function() {
  return {
    'data-attr': this.model.foo
  };
}

ال 8 كومينتر

نعم - إنه مجرد كائن 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 الآن.

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