【发布时间】:2014-07-07 09:34:04
【问题描述】:
我的应用有一个小错误。
是我加载外部模板时的渲染问题。
我的主干应用程序有一个文件 js,模板有一个单独的 html 文件。
我需要在我的应用程序中创建循环功能。
这是我的渲染函数:
_.each(here.data_table.models, function(t) {
$.get('js/template.html', function (data) {
template = _.template(data, {data: t});//Option to pass any dynamic values to template
$(here.el).find('tbody').append(template);
}, 'html');
});
如果我打印here.data_table.models,我可以按正确的顺序查看我的所有收藏。
但是当我打印的时候不是那个顺序,是随机的。
所以我认为问题在于$.get 调用,因为它是异步的。
是否存在一种方法可以在同步模式下以原始顺序加载我的数据?
例子:
如果我打印属性顺序,这是我的here.data_table.models 简化:
1
2
3
4
如果我在我的 $.get 函数中放置一个 console.log,我可以得到这个:
3
2
4
1
另一个订单不是原始订单,因为是异步的。
有人可以帮我吗?
谢谢
【问题讨论】:
-
我通常做的是将这些类型的调用放在我的路由器中,然后再交给视图。只是查看应该真正地™(作为“最佳实践”),除了渲染本身之外并没有真正做太多事情。所以我会在实例化它之前把它需要的所有数据交给它..
标签: javascript jquery backbone.js asynchronous