Я фанат установки атрибутов в представлении как таковом ...
Backbone.View.extend ({ атрибуты: { data-attr: 'mydata' } });
... однако это вызывает ошибку из-за дефиса в ключе data-attr.
Uncaught SyntaxError: Неожиданный токен -Я понимаю, что это недопустимый токен в объекте «ключ-значение» JavaScript, однако я надеялся, что Backbone предложит некоторые решения для этого, учитывая тот факт, что передача атрибутов данных является одним из наиболее вероятных сценариев. Я работал над этим, устанавливая атрибут в функции рендеринга с помощью jQuery:
render: function () { this. $ el.attr ('data-attr', 'mydata "'); }
Это работает, но я подумал спросить, есть ли другой вариант.
Ага - это просто объект JavaScript. Используйте ключи в кавычках.
attributes: {
"data-attr": "mydata"
}
Ах, я думал, что пробовал! Спасибо!
Что вы предлагаете для передачи атрибута данных в элемент DOM представления из атрибутов в модели представления? Как таковой...
атрибуты: { "data-attr": this.model.foo }
Я теряю возможность ссылаться на «это».
Uncaught TypeError: невозможно прочитать модель свойства undefined
Вы можете использовать такую функцию:
attributes: function() {
return {
'data-attr': this.model.foo
};
}
Потрясающие. Это прекрасно работает. Спасибо за оперативные ответы!
Добро пожаловать, но в будущем, пожалуйста, не используйте тикеты об ошибках для подобной технической поддержки - сначала попробуйте канал IRC или список рассылки.
Счастлив. Я попробовал это первым, но в DocumentCloud IRC есть только один пользователь, Turjakas, который не отвечает.
Должно быть, опечатка - сейчас 242 человека в #documentcloud на freenode.
Самый полезный комментарий
Вы можете использовать такую функцию: