1

我正在开发一个应用程序,其中我的一个模板呈现具有 n 行数的表。现在在每一行中,我都有一个带有编辑和删除等按钮的列。

单击编辑时,编辑表单会出现在某个 div 的同一窗口中。该表单需要填充从后端获取的值。

现在没有什么了不起的。我的问题是这样的:

我有一个使用以下模板结构呈现完整表格的视图:

<script type="text/template" id="ledgersing"> 

 <div class="span6 widget"> 
 <div class="widget-header"> 
 <span class="title">Ledgers</span> 
<button class="btn btn-danger pull-right" id="addLedgerButton">Add Ledger</button> 
</div> 

 <div class="widget-content"> 

 <table width="100%" class="table table-striped dataTable"> 
 <thead> 
 <tr><th>Name</th><th>Email</th><th>Phone</th><th>Action</th></tr> 
 </thead> 
<tbody> 
<% _.each(ledgers,function(data){ %>
<tr>
    <td><%= data.name %></td>
    <td><%= data.email %></td>
    <td><%= data.contact_number %></td>
    <td><span onClick="alert(<%= data.id %>)">x</span></td>
</tr>
<% }) %>
</tbody>

</table> 
</div> 

 </div> 


 </div >
 </script>

在这种情况下,它只是在单击 x 时提醒一个 id。现在我是否需要像这样使用 onClick 事件?我的意思是我将需要在我用于处理的任何构造中的 id。有什么更好的解决方案?我知道如果应用程序结构正确,backbonejs 可以轻松处理这种混乱。所以基本上我想从专家那里知道,在这种情况下他们会做什么。他们将如何构建应用程序?我是这个前端框架的新手。

4

2 回答 2

4

我不会在您的模板中使用,而是_.each每个表行使用一个视图,因为每个视图都有一些复杂性(编辑、删除)

在这些视图中,您使用events散列来注册您的 DOM 事件。永远不要onclick在你的 HTML 中使用,这是一个非常糟糕的做法。

不要犹豫,查看TodoMVC Backbone 示例,了解如何组织您的应用程序。

于 2013-01-24T15:54:25.777 回答
0

我也是第一次开发一个主干应用程序并经历了完全相同的错误。

首先,我只是尝试将我的 php / asp / ruby​​ /whatever_server_side_template_technology 转换为下划线模板,并得到了与您所拥有的非常相似的东西。

现在我可以意识到这是一个错误。您应该使用子视图。事件和相关模型将连接到该子视图。很快你就会有很多视图监听事件并在数据更改时更新自己,但如果你小心的话,它会没问题的。

这是我正在开发的演示应用程序:https ://bb-jugar.rhcloud.com/index.html#Wine ,这里是 github 存储库:https ://github.com/opensas/BackboneBootstrap

这就是我解决它的方法:https ://github.com/opensas/BackboneBootstrap/blob/master/demoapp/js/src/views/crud/RowsView.js

于 2013-03-01T04:44:21.020 回答