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
Jquery mobile jquery mobile require.js和主干_Jquery Mobile_Backbone.js_Requirejs - Fatal编程技术网

Jquery mobile jquery mobile require.js和主干

Jquery mobile jquery mobile require.js和主干,jquery-mobile,backbone.js,requirejs,Jquery Mobile,Backbone.js,Requirejs,我真的在为require.js和jquerymobile苦苦挣扎。我有一个松散的文件结构和基于 但是它太旧了,我不得不为require2.0版本做一些修改。是否有社区认可的方式将jquery mobile、backbonejs和requirejs一起使用?我想使用主干网的路由,而不是jquery手机。此外,该模板还有phonegap,我对此不感兴趣。您可以查看最新发布的或christophe's,其中包含启动basic应用程序所需的所有内容 编辑 这是我使用的main.js文件 require

我真的在为require.js和jquerymobile苦苦挣扎。我有一个松散的文件结构和基于


但是它太旧了,我不得不为require2.0版本做一些修改。是否有社区认可的方式将jquery mobile、backbonejs和requirejs一起使用?我想使用主干网的路由,而不是jquery手机。此外,该模板还有phonegap,我对此不感兴趣。

您可以查看最新发布的或christophe's,其中包含启动basic应用程序所需的所有内容

编辑
这是我使用的main.js文件

require.config({
  baseUrl: "/js/",
  paths: {
    jquery: 'libs/jquery/jquery-1.7.1',
    'jquery.mobile-config': 'libs/jqm/jquery.mobile-config',
    'jquery.mobile': 'libs/jqm/jquery.mobile-1.1.0',
    'jquery.mobile.asyncfilter': 'libs/jqm/asyncfilter',
    underscore: 'libs/underscore/underscore-1.3.3',
    backbone: 'libs/backbone/backbone-0.9.2',
    templates: '../templates'
  },
  shim: {
          'underscore': {
            exports: "_"
          },
          'backbone': {
              //These script dependencies should be loaded before loading
              //backbone.js
              deps: ['jquery','underscore'],
              //Once loaded, use the global 'Backbone' as the
              //module value.
              exports: 'Backbone'
          },
          'jquery.mobile-config': ['jquery'],
          'jquery.mobile': ['jquery','jquery.mobile-config'],
          'jquery.mobile.asyncfilter': ['jquery.mobile'],
        }
});

require([
  'jquery',
  'app',
  'jquery.mobile','jquery.mobile.asyncfilter'
], function( $, App ){
    $(function(){
      App.initialize();
    });
});
最后一位对于正确加载JQM(并实际运行)非常重要。本部分:

require([
      'jquery',
      'app',
      'jquery.mobile','jquery.mobile.asyncfilter'
    ], function( $, App ){
        $(function(){
          App.initialize();
        });
    });
由于我需要jqm的jquery(jQueryMobile),我将全部加载它们,多亏了上面的填充代码,依赖项以正确的顺序加载。实际上,我没有将任何jqm变量传递到函数调用中,函数调用只传递$和App。下一个重要部分是jqm配置文件:

define(['jquery'], function ($) {
      $(document).on("mobileinit", function () {
          $.mobile.ajaxEnabled = false;
          $.mobile.linkBindingEnabled = false;
          $.mobile.hashListeningEnabled = false;
          $.mobile.pushStateEnabled = false;
      });
});

您可以将jqm的所有preinit代码都放在该文件中。在所有这些之后,您应该能够使用jqm

我刚刚在jQuery Mobile文档中添加了backbone.js、require.js和jQuery Mobile小示例应用程序。让我知道这是否有帮助:


如果您使用的是r.js、requirejs optimizer,这是一个关于jquery.mobile和config问题的兴趣链接:

尽管一切都是神圣和纯洁的,但我可能已经找到了方法。我将进行测试,如果它真的有效,我将在github上提供一个带有链接的源代码。不幸的是,没有使用jqm的示例。在
主干目录中有一个子文件夹使用jquery mobile OnlyHoops,我的眼睛错过了您答案中的第二个链接。虽然没有使用require.js,但这是一个有趣的示例。您好,谢谢!我能够完成所有工作,包括jqm的preinit代码,但是,我不理解“jquery.mobile.asyncfilter”。有什么提示吗?对不起,这是我为jqm编写的数据过滤器插件。您可以删除它。这就是您初始化其他jqm或jquery插件的方式。嘿,这是一个很大的帮助,谢谢。我得到了以下错误:
TypeError:mpc未定义[Break On This error]mpc.trigger(pbcEvent,triggerData)即使在您的更改之后,也会显示,但仅每隔一次显示一次。知道吗?不知道mpc是什么。一个每隔一次的错误?讨厌。可能想提出一个新的SO问题。mpc代表移动页面容器。这是一个应该在mobileinit之后运行的代码,但是由于我使用主干来运行
$.mobile.changePage
mpc.trigger
最终在mobileinit之前运行。一旦我有时间设置一个小样本,我将设置一个新问题。该页面确实对我有所帮助,但现在它将重定向到新的jquery 1.3文档。如果可以再次更新,请将其还原。如果您仍然有问题,请告诉我。我在该示例中没有看到主干,只需要.js。@PeterNore您阅读了整个帖子了吗?另外,下面是示例应用程序的来源:@GregFranko-抱歉,我是RequireJS新手,没有意识到require脚本标记上的data main=“js/mobile”意味着我可以找到js/mobile.js中引用的包含的依赖项。谢谢这解决了我的问题。特别要注意shim文档中的注释:“shim配置仅设置代码关系。要加载属于或使用shim配置的模块,需要正常的require/define调用。设置shim本身不会触发代码加载。”