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
Backbone.js 加载Dynamic Require.js模块_Backbone.js_Requirejs_Marionette - Fatal编程技术网

Backbone.js 加载Dynamic Require.js模块

Backbone.js 加载Dynamic Require.js模块,backbone.js,requirejs,marionette,Backbone.js,Requirejs,Marionette,我花了一整天的时间在这上面,我想是时候大声说出来了。我正在使用require.js在我的主干应用程序中包含模块。这就是我所拥有的: 我的requirejs配置: paths: jquery: "backbone/initializers/jquery_loader" jqueryui: "backbone/initializers/jqueryui_loader" modules: - name: 'application' - name: 'jquery' exclude:

我花了一整天的时间在这上面,我想是时候大声说出来了。我正在使用require.js在我的主干应用程序中包含模块。这就是我所拥有的:

我的requirejs配置:

paths:
 jquery: "backbone/initializers/jquery_loader"
 jqueryui: "backbone/initializers/jqueryui_loader"   
modules:
 - name: 'application'
 - name: 'jquery'
  exclude: ['application']
 - name: 'jqueryui'
  exclude: ['application', 'jquery']
 - name: 'email'
  exclude: ['application']
 - name: 'department_home'
  exclude: ['application']
priority: ['application', 'jquery', 'jqueryui']
我的jquery\u加载程序:

define ["jquery.min"], () ->
 jQuery = $
 jQuery.noConflict(true)
我的jqueryui_加载器:

define ['jquery.ui.all'], () ->
我的电子邮件模块:

define ['marionette', 'jqueryui', 'tags'], (Marionette, ui, tags) ->
我的部门主页模块

define ['marionette', 'jqueryui', 'dept_tags'], (Marionette, ui, tags) ->
一切都按预期运行并编译,但可能我不理解它,或者我遗漏了一些东西,电子邮件模块在单击事件中动态加载,其中包含jqueryui,我相信这只是一个r.js优化文件

现在,我在加载电子邮件模块后执行另一个单击事件,我看到department模块中也有jqueryui,两者的大小都是90KB,我希望department模块使用已经由电子邮件模块加载的jqueryui


谢谢你的帮助

我认为您不应该像这样使用jquery加载程序。您应该使用shim属性初始化noConflict

在您的情况下,可能是这样的(但在coffeescript中):

require.config({
    paths: {
        jquery: "path/to/jquery",
        jqueryui: "path/to/jqueryui"
    },
    shim: {
        jquery: {
          exports: 'jQuery',
          init: function() {
             return this.jQuery.noConflict();
          },
        jqueryui: {
          deps: ['jquery']
       }
    } 
});