Require.js按顺序加载Backbone视图

时间:2012-04-06 10:10:14

标签: backbone.js requirejs

我在使用RequireJS加载Backbone Views集合时遇到问题 - 因为它们没有以正确的顺序加载。

下面是我想要实现的一个简单示例 - 一个页面循环遍历一组小部件,并使用其“模板”属性获取其Backbone View。关键是这些按顺序显示,并且它们当前以随机顺序显示。

page.js

collection.each(function(widget) {
    require(['order!views/widgets/' + widget.get('template')], function(WidgetView) {
        WidgetView.render();
    })
}

小部件/ widgetView.js(通用视图)

define(['underscore','backbone'], function(_, Backbone) {
    var WidgetView = Backbone.View.extend({
        render: function() {
            // .. show view
        }
    });
   return WidgetView;
});

我知道订单! RequireJS的插件,但它似乎没有完成它的工作。有什么东西我做错了吗?

2 个答案:

答案 0 :(得分:1)

查看

上接受的答案

Loading Backbone and Underscore using RequireJS

我认为这就是你要找的东西:)

答案 1 :(得分:1)

据我所知,发出多个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();
    }   
});