jQuery Mobile的require.js和骨干(jquery mobile require.

2019-06-25 05:21发布

我真的require.js和jQuery Mobile的挣扎。 我已经基于一个松散的,基于文件的结构和装载模式断

https://github.com/appboil/appboil-requirejs-backbonejs-jquerymobile-phonegap

但它的老,我不得不做出adaptions为需要2.0版本。 有没有使用jQuery移动,backbonejs的社会接受的方式和requirejs在一起吗? 我想使用骨干的路由,而不是jQuery的手机。 此外,该模板具有的PhoneGap,这我不关心。

Answer 1:

下面是我用的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 Mobile的)jQuery的,我会所有这些,由于加载到上述情况,相关性以正确的顺序加载的垫片代码。 我真的不传递任何JQM可变进函数调用,只通过$和应用。 下一个重要的部分是JQM-config文件:

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

您可以将您的所有preinit代码在该文件中JQM。 毕竟,你应该能够使用JQM!



Answer 2:

您可以查看最近的发布backbonejs样板或检查克里斯托夫的骨干目录 ,其中包括所有必要的东西,开始基本的应用程序。

编辑

https://github.com/raDiesle/backbone.js-jquerymobile-boilerplate-template



Answer 3:

我只是一个addeed Backbone.js的,require.js和jQuery Mobile的小例子应用到jQuery Mobile的文档。 让我知道如果这能帮助:

http://demos.jquerymobile.com/1.4.4/backbone-requirejs/backbone-require.html



Answer 4:

如果您使用r.js,requirejs优化,这是关于问题与jquery.mobile和配置感兴趣的链接: https://github.com/jrburke/requirejs/issues/358



文章来源: jquery mobile require.js and backbone