我已经考虑过如何在backbone.js-application中包含文件。在生产中,我显然会加入我的文件并最小化它们以保持最低要求,但在开发过程中,只需加载所有文件并且不必为每一个小变化调用一个buildscript就好了。
所以我看了jQuery
的{{1}} - 方法。我试了一下,然后才能加载我的文件。
由于我已将getScript()
- 调用放入函数中,为确保在启动backbone.js应用程序之前加载文件,似乎每个加载的脚本都不包含在全局范围内。
getScript
答案 0 :(得分:6)
首先,您只是调用loader()
而不是传递函数:
$(document).ready(loader);
将解决这个问题
其次,您正在调用init
回调,而不是在加载所有脚本时。如果有许多脚本需要使用promises:
var scripts = ['/app/routers/myrouter.js'];
for (var i = 0; i < scripts.length; i++) {
scripts[i] = $.getScript(scripts[i]);
}
$.when.apply( $, scripts ).then( init, function(){
"some script failed";
});
上面使用的语法是$.when( promise1, promise2, ...).then( successCallback, failureCallback)
- 我们用promises填充数组,并使用.apply
将它们作为参数应用。