【发布时间】:2012-03-11 01:44:08
【问题描述】:
我刚开始学习 Backbone.js,并且一直致力于(还有什么)一个简单的待办事项应用程序。在这个应用程序中,我想在<ul id="unfinished-taks"></ul> 中显示我的待办事项,每个任务都作为<li> 元素。到目前为止,一切都很简单。
根据我阅读的教程,我应该使用以下内容创建一个视图:
// todo.js
window.TodoView = Backbone.View.extend({
tagName: 'li',
className: 'task',
// etc...
});
这很好用,但是在我的 Javascript 代码中定义我的待办事项的 HTML 标记结构似乎是一种不好的做法。我宁愿完全在模板中定义标记:
// todo.js
window.TodoView = Backbone.View.extend({
template: _.template($("#template-task").html()),
// etc...
});
<!-- todo.html -->
<script type="text/template" id="template-task">
<li class="task <%= done ? 'done' : 'notdone' %>"><%= text %></li>
</script>
但是,如果我这样做,Backbone.js 默认使用tagName: 'div' 并将我所有的待办事项包装在无用的<div> 标记中。有没有办法让 HTMl 标记完全包含在我的模板中,而无需在每个视图元素周围添加无意义的 <div> 标记?
【问题讨论】:
标签: model-view-controller backbone.js javascript-framework