Итак, я создаю приложение на основе Backbone.js, используя шаблоны для рендеринга некоторых объектов.Решение для шаблонов Javascript, которое позволяет использовать после инъецируемых объектов после рендеринга?
Это работает, однако теперь мне нужно динамически ссылаться на объекты во время выполнения, и я не уверен, что это возможно с помощью решений для шаблонов, которые я видел (подчеркивание, руль, ...), которые «сглаживают» JavaScript.
Чтобы проиллюстрировать, у меня есть список объектов, скажем, Задачи. У меня есть модель, которая может быть упрощенной как таковые:
{{#each tasks.models as |task|}}
<div>
{{task.name}}
</div>
{{/each}}
Теперь, мне нужно будет использовать «задачу» объект динамически, после того, как рендеринг закончен. Например, сделайте примерно следующее:
<div>
{{task.name}} - <button onClick="task.setComplete()" />
</div>
Конечно, этот способ не работает; и не делают ничего подобного {{task}}.setComplete()
, так как {{task}} преобразуется в строку при рендеринге.
Есть ли способ сделать это?
Я думал, что мне нужны замыкания, чтобы сохранить объекты, единственный способ их получить - это не сгладить html, поскольку в противном случае все преобразуется в строку.
Любая идея? Может быть, существуют библиотеки шаблонов, которые позволяли бы создавать непосредственно объекты DOM, которые я мог бы добавить в мой документ?
Спасибо заранее,
Вы используете Магистраль, так почему бы вам не использовать атрибут onClick, а не обрабатывать событие click через «события»? Попытка сочетать функциональный код с вашими шаблонами отображения обычно приводит к запутанному беспорядку путаницы. –
Спасибо за вход! Если в шаблоне нет ссылки на ссылку, это то, что я буду делать. Однако мне нужно будет сопоставить идентификаторы объектов из шаблона с идентификаторами в моем базовом коде на нескольких уровнях, поэтому, похоже, более сложный код будет иметь прямую ссылку в шаблоне. –
Вы можете подбрасывать 'id' в атрибутах данных следующим образом: http://stackoverflow.com/a/7825773/479863 –