Rad*_*adu 8 javascript requirejs backbone.js
我有一个模型需要被几个视图访问,并在模型模块的定义中实现这一点我立即实例化它:
define([
'jquery',
'underscore',
'backbone'
], function(_, Backbone) {
var Foo = Backbone.Model.extend({
// wondrous methods and properties
});
return new Foo();
});
Run Code Online (Sandbox Code Playgroud)
我只需要这个模型的一个实例 - 现在就是这样.据我所知,解决方法是有一个单独的App模块.就像是:
define([], function() {
var App = {
routers: {},
models: {},
views: {}
};
return App;
});
Run Code Online (Sandbox Code Playgroud)
您可以在app启动时实例化和存储对象的引用:
require([
'App',
'Foo'
], function(App, Foo) {
App.models.foo = new Foo();
});
Run Code Online (Sandbox Code Playgroud)
但我觉得这是一个糟糕的选择,因为你基本上回到了拥有一个全局命名空间 - 这是RequireJS应该帮助避免的.
有没有其他选择,有没有什么好的理由可以避免像我上面描述的单身模型?
嗯..我一直在使用RequireJS模块作为Singleton对象一段时间没有问题.这是我提出的一个相关问题.
希望这可以帮助!