Javascript jQuery模板插件和数据持久性
我不太确定发生了什么,但所有的迹象都指向我这个方向。。 我有这段代码(正在工作): 而且#一些#div被填充…但是,如果在“邪恶线”我说:Javascript jQuery模板插件和数据持久性,javascript,jquery,templates,plugins,persistence,Javascript,Jquery,Templates,Plugins,Persistence,我不太确定发生了什么,但所有的迹象都指向我这个方向。。 我有这段代码(正在工作): 而且#一些#div被填充…但是,如果在“邪恶线”我说: some_data = {}; #some_div显示为空。 模板插件中是否存在某种数据持久性? 我被使用后不应该弄乱一些数据 2011-07-22重要 据我所知,json对象和模板是链接的,因此如果我在“邪恶线”处这样做: 模板即使在渲染后也会更改其内容。 有人知道有没有办法防止这种情况发生吗 解决方案!:请参见我对布兰登·布恩回答的评论 例如: 看起来
some_data = {};
#some_div显示为空。
模板插件中是否存在某种数据持久性?
我被使用后不应该弄乱一些数据
2011-07-22重要强>
据我所知,json对象和模板是链接的,因此如果我在“邪恶线”处这样做:
模板即使在渲染后也会更改其内容。
有人知道有没有办法防止这种情况发生吗
解决方案!:请参见我对布兰登·布恩回答的评论
例如:
看起来函数(模板){…}
是一个异步回调函数。这意味着你的“邪恶路线”很可能会在达到这个函数的内部之前执行。因此,当您在函数中使用一些_数据时,它已经是空的
重构到:
将解决此问题这是因为当您运行
$.tmpl(template, {});
它在模板中循环传递您要传递的每一条数据,并相应地填充div。若你们并没有向它传递任何数据,它就不会在模板中循环并输出html
如果您只是尝试加载静态html,我认为模板不是解决方案。嘿,布兰登!谢谢你的回复。您将看到……您在异步方面是正确的,但是,它是$.get函数,而不是$.tmpl。头痛消失了!!=)很高兴我能提供帮助,但只是澄清一下,json对象和模板没有链接。“
some_data={};
”在您到达“$.tmpl(template,some_data).appendTo(“#some_div”);
”之前被执行,因为$.get(..)
的回调函数(函数(template){…
”)是异步的。
some_data = {"item":"new value"};
some_data = {"item":"value"};
$.get("some_template.php", function(template)
{
$.tmpl(template, some_data).appendTo("#some_div");
some_data = {}; //evil line
do_something_else();
});
$.tmpl(template, {});