Javascript Backbone.js初始化顺序
关于以下代码:Javascript Backbone.js初始化顺序,javascript,html,backbone.js,Javascript,Html,Backbone.js,关于以下代码: var leaderList = new app.LeaderCollection(); var leaderListView = new app.LeaderListView({collection:leaderList}); $(document).ready(function() { leaderList.fetch(); }); 当这起作用时,为什么不起作用: $(document).ready(function() { var leaderList
var leaderList = new app.LeaderCollection();
var leaderListView = new app.LeaderListView({collection:leaderList});
$(document).ready(function() {
leaderList.fetch();
});
当这起作用时,为什么不起作用:
$(document).ready(function() {
var leaderList = new app.LeaderCollection();
var leaderListView = new app.LeaderListView({collection:leaderList});
leaderList.fetch();
});
我知道所显示的代码并不深入,我想知道是否有人知道为什么这两段代码的行为会不同。问题可能是因为
el
元素在视图中的行为方式
在Document.ready
函数之前运行el
元素时,该元素可能不在DOM
中
在第二种情况下,您正在等待首先加载DOM,然后初始化视图。检查网络选项卡。服务器应该转储响应,但视图无法找到用于呈现集合模型的
el
。哦,对了,我忘了fetch()
是异步的。为什么在第二段代码中它的行为会有所不同呢?这似乎是在初始化变量,然后按正确的顺序获取。查看app.LeaderListView
可能会有所帮助哦,你的答案很有道理。非常感谢,我相信这是正确的答案。很高兴能帮上忙。。只要仔细检查一下,您就可以在开发人员工具中打开网络选项卡并检查响应。