我想以树的形式将json数据加载到Backbone Collection中.我不能这样做.谁能解释我做错了什么?
我非常简单的模型:
CTreeDataItem = Backbone.Model.extend(
{
});
CTreeDataItems = Backbone.Collection.extend(
{
model: CTreeDataItem
});
Run Code Online (Sandbox Code Playgroud)
我的负担是:
var treeJs =
[
{ id: "tvRoot", title: 'Root', cssClass: 'root',
items: [
{ id: "ti1", title: 'Item1', cssClass: 'item',
items: [
{ id: "ti11", title: 'SubItem11', cssClass: 'subitem'},
{ id: "ti12", title: 'SubItem12', cssClass: 'subitem'}]},
{ id: "ti2", title: 'Item2', cssClass: 'item',},
{ id: "ti3", title: 'Item3', cssClass: 'item',
items: [
{ id: "ti31", title: 'SubItem31', cssClass: 'subitem'},
{ id: "ti32", title: 'SubItem32', …Run Code Online (Sandbox Code Playgroud) 如果我将视图存储在window.myView变量中,渲染它,然后在javascript控制台中调用:
$('#container').html('')
Run Code Online (Sandbox Code Playgroud)
然后打电话:
$('#container').html(window.myView.$el)
Run Code Online (Sandbox Code Playgroud)
绑定事件将停止工作.
我很确定应该如此,但是:
myView.render()不会丢失事件绑定?更新:
找到这篇文章.这是什么原因?
确保jQuery不会在您不希望的情况下卸载事件
如果您正在构建一个应用程序,您可以在其中动态创建视图并将其附加/删除到dom,则可能会出现问题.每次从dom中删除视图时,jQuery都会卸载所有事件.因此,您无法引用视图并将其从dom中删除,然后再重新附加.您的所有活动都将被卸载.如果你想保持周围的观点,更好的想法是使用display:none来隐藏它们.但是,您不应滥用此功能并回收您暂时不会使用的视图(并防止内存泄漏).
我正在创建一个模拟证券交易所市场的项目.我在一个大的html上向用户公开股票数据,<table>其中每<tr>行有两个<td>单元格.其中一个是公司的象征(即AAPL),另一个是当前的市场价值(不可能更简单).
我现在做的是我使用这样的javascript函数:
<script type="text/javascript">
$(function(){
setInterval(loadTable, 10000)
});
function loadTable(){
$("#se_table").load("/load/table/?ajax&user={{user.username}}");
}
</script>
Run Code Online (Sandbox Code Playgroud)
这是最好的方法吗?只更改一个值时,我应该加载整个表吗?