RequireJS и Dependency Injection (DI)
Это реализация AMD (Asynchronous Module Definition), API для объявления модулей и их асинхронной загрузки «на лету», когда они понадобятся.
Типичный случай
define(["jquery", "blade/object"], function ($, object) {
// ...
});
define(["jquery", "blade/object", "blade/fn",
"rdapi", "oauth", "blade/jig"
], function ($, object, fn, rdapi, oauth, jig) {
// ...
});
define(["jquery", "blade/object", "blade/fn", "rdapi",
"oauth", "blade/jig", "blade/url", "dispatch", "accounts",
"storage", "services", "widgets/AccountPanel", "widgets/TabButton",
"widgets/AddAccount", "less", "osTheme", "jquery-ui-1.8.7.min",
"jquery.textOverflow"
], function ($, object, fn, rdapi, oauth, jig, url, dispatch,
accounts, storage, services, AccountPanel, TabButton,
AddAccount, less, osTheme) {
// ...
});
define(function (require) {
var $ = require("jquery");
var object = require("blade/object");
var fn = require("blade/fn");
var rdapi = require("rdapi");
// ..
});
define(function (
#! /*jquery=*/$,
#! /*blade*/object,
#! /*blade*/fn,
#!+ // ..
#!- /*jquery-ui-1.8.7.min*/
) {
// ...
});