Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript backbone.js上下文中的依赖项注入_Javascript_Backbone.js_Dependency Injection_Requirejs - Fatal编程技术网

Javascript backbone.js上下文中的依赖项注入

Javascript backbone.js上下文中的依赖项注入,javascript,backbone.js,dependency-injection,requirejs,Javascript,Backbone.js,Dependency Injection,Requirejs,我在angular js中听说了很多关于依赖注入(DI)的事情。如何在backbone.js中实现同样的功能。我正在浏览相同的内容,但所有文章都在主干网中使用DI的requirejs。主干网如何进行DI,或者我们如何在主干网中实现DI?主干网没有包含DI的概念。与其说它是一个框架,不如说它是一个库。通常,像requirejs或browserify这样的工具会为您进行依赖注入 我更喜欢它的CommonJS风格,在需要时调用require(“module”),如下所示: //in file mode

我在angular js中听说了很多关于依赖注入(DI)的事情。如何在backbone.js中实现同样的功能。我正在浏览相同的内容,但所有文章都在主干网中使用DI的
requirejs
。主干网如何进行DI,或者我们如何在主干网中实现DI?

主干网没有包含DI的概念。与其说它是一个框架,不如说它是一个库。通常,像requirejs或browserify这样的工具会为您进行依赖注入

我更喜欢它的CommonJS风格,在需要时调用
require(“module”)
,如下所示:

//in file models/dependency1.js
define(function(require, exports, module){
  var Backbone = require("backbone"); //shimmed in requirejs config
  module.exports = Backbone.Model.extend({
    defaults: {
      name: "Silly Model"
    } 
  });
});

//in another file
define(function(require, exports, module){
  var Backbone = require("backbone"), 
      SillyModel = require("models/dependency1");

  module.exports = Backbone.Collection.extend({
    model: SillyModel
  });
});
当然,这并不是Java或.NET中所使用的真正的DI接口,但在需要时,您也可以使用工厂模式,以便真正能够动态地提供依赖关系

您也可以调用
require(XXX)
而不是
SillyModel

module.exports = Backbone.Collection({
  model: require("models/dependency1")
});
我更喜欢将依赖项摘要放在顶部,这样可以简化对该文件内容的理解。:)

希望有帮助

将为您提供在JS中使用DI的架构工具集。它还捆绑了许多其他东西(Promise、Polyfill、AOP、DOM处理等)

它允许您以声明方式创建组件并连接这些组件,将引用注入到组件中

是指向Github repo的链接,该链接演示如何并排使用
cujo.js/wire
backbone.js