Backbone/RequireJS和多个模型

Jos*_*ter 5 javascript requirejs backbone.js

我主要围绕RequireJS进行思考.我发现它是一种好的/必要的技术,但对我来说,实现它是一个真正的延伸.非常感谢你的帮助!

我正在尝试使用Backbone和RequireJS开发一个相当灵活的应用程序.问题是我完全习惯于语法,new Person()而不必指定依赖项.有没有一种有效的方法来使用RequireJS有很多模型?我认为我的问题始终与退货有关.我考虑使用工厂方法来创建具有该require函数的模型,但这样做需要该require函数是同步的,这完全违背了RequireJS的目的.

只是首先要求我的所有模型然后在实例化函数中包含那些模型似乎是不对的 - 或者我呢?

您对如何构建和建模这样的应用程序有任何建议或教程吗?

谢谢你帮助我!

JMAX

Tom*_* Tu 21

你可以使用我所说的需要js模块模式.如果你知道经常一起使用一组类,你可以做这样的事情.

首先,在单独的文件中定义每个类,然后定义一个模块以将它们保持在一起

Module.js

define([

    './models/FirstModel',
    './models/SecondModel',
    './views/FirstView',
    './views/SecondView',
    'txt!./templates/template.tpl'

], function(FirstModel, SecondModel, FirstView, SecondView, template) {

    return {
        FirstModel: FirstModel,
        SecondModel: SecondModel,
        FirstView: FirstView,
        SecondView: SecondView,
        template: template
    }

});
Run Code Online (Sandbox Code Playgroud)

然后当你想要使用这个模块中的类时,你就可以了

define(['./Module'], function(Module) {

    var AView = Module.FirstView.extend({

        model: Module.FirstModel,

        render: function() {

            this.html(_.template(Module.template)(this.model.attributes));

            if (something) {

                this.$el.append(new Module.SecondView().render().el);
            }
        }
    })

    return AView;
});
Run Code Online (Sandbox Code Playgroud)

我不相信使用requirejs定义的模块我们应该返回一个实例 - 我们应该总是返回一个构造函数或一个对象.

您应该完全接受定义和要求 - 随着时间的推移,您将开始喜欢它 - 而不必考虑添加/跟踪依赖性等,无论是手工还是(所以2005年!)将大部分内容放在一个文件中:)