Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 如何构建backbonejs应用程序-单击每个表行backbonejs上的事件_Backbone.js_Underscore.js - Fatal编程技术网

Backbone.js 如何构建backbonejs应用程序-单击每个表行backbonejs上的事件

Backbone.js 如何构建backbonejs应用程序-单击每个表行backbonejs上的事件,backbone.js,underscore.js,Backbone.js,Underscore.js,我正在开发一个应用程序,其中一个模板呈现一个有n行的表。现在,在每一行中,我都有一列,列中有编辑和删除等按钮 单击“编辑”时,某个分区的同一窗口中会出现一个编辑表单。该表单需要使用从后端获取的值填充 这里面没什么了不起的。 我的问题是: 我有一个使用以下模板结构呈现完整表的视图: <script type="text/template" id="ledgersing"> <div class="span6 widget"> <div class="widg

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

单击“编辑”时,某个分区的同一窗口中会出现一个编辑表单。该表单需要使用从后端获取的值填充

这里面没什么了不起的。 我的问题是:

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

<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>

账本
添加分类账
NameEmailPhoneAction
x
在这种情况下,它只是在单击x时提醒id。现在我需要像这样使用onClick事件吗?我的意思是,无论我使用什么构造进行处理,我都需要id。什么是更好的解决方案?我知道,如果应用程序结构正确,backbonejs可以轻松处理这一混乱局面。
所以本质上我想从专家那里知道,在这种情况下他们会怎么做。他们将如何构造应用程序?我是这个前端框架的新手。

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

在这些视图中,可以使用
事件
散列来注册DOM事件。千万不要在HTML中使用
onclick
,这是一种非常糟糕的做法


请毫不犹豫地查看一下,以了解如何组织应用程序。

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

在这些视图中,可以使用
事件
散列来注册DOM事件。千万不要在HTML中使用
onclick
,这是一种非常糟糕的做法


不要犹豫,看看下面的文章,寻找如何组织应用程序的想法。

我也是第一次开发主干应用程序,也犯了同样的错误

首先,我尝试将我的php/asp/ruby/which_server_side_template_技术翻译成下划线模板,得到了与您所拥有的非常相似的东西

现在我意识到这是个错误。您应该使用子视图。事件和关联模型将连接到该子视图。很快,你就会有很多的视图来监听事件,并在数据发生变化时进行自我更新,但如果你很小心的话,就可以了

这是我正在开发的一个演示应用程序: 以下是github回购协议:


我就是这样解决的:

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

首先,我尝试将我的php/asp/ruby/which_server_side_template_技术翻译成下划线模板,得到了与您所拥有的非常相似的东西

现在我意识到这是个错误。您应该使用子视图。事件和关联模型将连接到该子视图。很快,你就会有很多的视图来监听事件,并在数据发生变化时进行自我更新,但如果你很小心的话,就可以了

这是我正在开发的一个演示应用程序: 以下是github回购协议:


我就是这样解决的:

一个简单的问题:我可以预见,我会有很多模板视图等。我担心的是,如果我一开始就加载所有的模板代码、查看代码,应用程序将非常繁重。你也需要你的建议。好吧,你可以把你的模板放在外部文件中,然后通过Ajax加载它们。您可能需要查看有关如何构建应用程序的更多详细信息。您可以提供一个使用ajax加载模板的示例吗?您只需要使用basic(如果您直接从文件工作而不使用任何服务器,则可能需要将
数据类型设置为“text”),考虑使用Yeoman来运行支持AMD的主干模板。一旦你有了这个,你可以用Require.js加载你的模板。这将通过用于本地开发的ajax加载它们,但将为您提供构建脚本,以便将模板组合到用于生产的JS中。我担心的是,如果我一开始就加载所有的模板代码、查看代码,应用程序将非常繁重。你也需要你的建议。好吧,你可以把你的模板放在外部文件中,然后通过Ajax加载它们。您可能需要查看有关如何构建应用程序的更多详细信息。您可以提供一个使用ajax加载模板的示例吗?您只需要使用basic(如果您直接从文件工作而不使用任何服务器,则可能需要将
数据类型设置为“text”),考虑使用Yeoman来运行支持AMD的主干模板。一旦你有了这个,你可以用Require.js加载你的模板。这将通过用于本地开发的ajax加载这些模板,但将为您提供构建脚本,以便将模板组合到用于生产的JS中。是的,正确。我以前为每一行创建了单独的视图。谢谢,没错。我以前为每一行创建了单独的视图。谢谢