Backbone.js Require.js按顺序加载主干视图
我在加载带有RequireJS的主干视图集合时遇到问题,因为它们的加载顺序不正确 下面是我试图实现的一个简单示例—一个页面通过一组小部件循环,并使用其“模板”属性获取其主干视图。重要的是,这些都是按顺序显示的,而它们目前是按随机顺序显示的 page.jsBackbone.js Require.js按顺序加载主干视图,backbone.js,requirejs,Backbone.js,Requirejs,我在加载带有RequireJS的主干视图集合时遇到问题,因为它们的加载顺序不正确 下面是我试图实现的一个简单示例—一个页面通过一组小部件循环,并使用其“模板”属性获取其主干视图。重要的是,这些都是按顺序显示的,而它们目前是按随机顺序显示的 page.js collection.each(function(widget) { require(['order!views/widgets/' + widget.get('template')], function(WidgetView) {
collection.each(function(widget) {
require(['order!views/widgets/' + widget.get('template')], function(WidgetView) {
WidgetView.render();
})
}
widgets/widgetView.js(通用视图)
我知道这个命令!RequireJS的插件,但它似乎没有发挥作用。有什么我做错了吗?据我所知,发出多个
require
调用将以异步模式获取依赖项。您可能需要构建一个视图数组,然后才需要它们。比如说,
var widgets=[];
collection.each(function(widget) {
widgets.push('order!views/widgets/' + widget.get('template'));
});
require(widgets, function() {
var viewclass, view;
for (var i=0, l=arguments.length; i<l; i++) {
viewclass=arguments[i];
view=new viewclass();
view.render();
}
});
var小部件=[];
集合。每个(函数(小部件){
widgets.push('order!views/widgets/'+widget.get('template');
});
require(小部件、函数(){
var视图类,视图;
对于(var i=0,l=arguments.length;iAh),这是有意义的。但是,调用“arguments”时似乎出现了一个错误,错误是“Object function(){a.apply(this,arguments)}”没有方法“render”。@crawf我的示例缺少视图的实例化。更新了我的答案,现在应该可以了!我应该知道..顺便说一句,这很有效-非常感谢您的帮助!查看上接受的答案,我想这就是您要找的:)
var widgets=[];
collection.each(function(widget) {
widgets.push('order!views/widgets/' + widget.get('template'));
});
require(widgets, function() {
var viewclass, view;
for (var i=0, l=arguments.length; i<l; i++) {
viewclass=arguments[i];
view=new viewclass();
view.render();
}
});