骨干+ jQuery Mobile的+ RequireJS [英] Backbone + JQuery Mobile + RequireJS

查看:272
本文介绍了骨干+ jQuery Mobile的+ RequireJS的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个很大的proglem与RequireJS。这种配置随机。我不知道为什么,一旦它的工作原理,一旦它不:

  requirejs.config({
  的baseUrl:'JS',
  urlArgs:胸围=+(新的Date())的getTime()
  路径:{
    jQuery的:库/ jQuery的/ jQuery的-1.10.2.min',
    强调:库/下划线/下划线民',
    主干网:库/骨干网/骨干网民,
    提线木偶:库/木偶/ backbone.marionette',
    科尔多瓦:库/科尔多瓦/科尔多瓦-1.9.0,
    jquerym:库/ jQuery的移动/ jquery.mobile-1.4.0
  },  垫片:{
    jQuery的:{
      DEPS:[]
    },
    jquerym:{
      DEPS:['jQuery的'],
      出口:jQuery的
    },
    强调:{
      DEPS:[],
      出口:_
    },
    骨干:{
      DEPS:['jQuery的','底线'],
      出口:骨干
    },
    提线木偶:{
      DEPS:['jQuery的','底线','骨干']
    }
  },
  优先权:['jquery的','jquerym']
});
需要(['应用','jQuery的','jquerym'],功能(APP){
  (文档)$ .bind(mobileinit功能(){
    $ .mobile.ajaxEnabled = FALSE;
    $ .mobile.linkBindingEnabled = FALSE;
    $ .mobile.hashListeningEnabled = FALSE;
    $ .mobile.pushStateEnabled = FALSE;
    //它被更换时,从DOM删除页面
    $('DIV [数据角色=页]')。生活(pagehide',函数(事件,UI){
      $(event.currentTarget)一个.remove();
    });
  });  的console.log('jQuery的版本+ $()的jQuery +'装');
  App.initialize();
});


解决方案

在移动-INIT-事件之前jQuery Mobile的加载才能被正确地触发的约束。
尝试使用这样的:

 规定([jQuery的],功能($){
    $(文件)。一(mobileinit功能(){
        //设置您的配置和事件绑定
        $ .mobile.ajaxEnabled = FALSE;
        $ .mobile.linkBindingEnabled = FALSE;
        $ .mobile.hashListeningEnabled = FALSE;
        $ .mobile.pushStateEnabled = FALSE;
        //它被更换时,从DOM删除页面
        $('DIV [数据角色=页]')。生活(pagehide',函数(事件,UI){
            $(event.currentTarget)一个.remove();
        });
    });    需要([应用程序,jquerym],功能(应用程序,JQM){
        / *与JQM在这里做的东西,如果你想一样,如果关闭jqm.initializePage()* /
        App.initialize();
    });
});

I am having a big proglem with RequireJS. This configuration works randomly. I dont know why, once it works and once it doesn't:

requirejs.config({
  baseUrl: 'js',
  urlArgs: "bust=" + (new Date()).getTime(),
  paths: {
    jquery: 'libs/jquery/jquery-1.10.2.min',
    underscore: 'libs/underscore/underscore-min',
    backbone: 'libs/backbone/backbone-min',
    marionette: 'libs/marionette/backbone.marionette',
    cordova: 'libs/cordova/cordova-1.9.0',
    jquerym: 'libs/jquery-mobile/jquery.mobile-1.4.0'
  },

  shim: {
    'jquery': {
      deps: []
    },
    'jquerym': {
      deps: ['jquery'],
      exports: 'jquery'
    },
    'underscore': {
      deps: [],
      exports: "_"
    },
    'backbone': {
      deps: ['jquery', 'underscore'],
      exports: 'Backbone'
    },
    'marionette': {
      deps: ['jquery', 'underscore', 'backbone']
    }
  },
  priority: ['jquery', 'jquerym']
});


require(['app', 'jquery', 'jquerym'], function (App) {
  $(document).bind("mobileinit", function () {
    $.mobile.ajaxEnabled = false;
    $.mobile.linkBindingEnabled = false;
    $.mobile.hashListeningEnabled = false;
    $.mobile.pushStateEnabled = false;
    // Remove page from DOM when it's being replaced 
    $('div[data-role="page"]').live('pagehide', function (event, ui) {
      $(event.currentTarget).remove();
    });
  });

  console.log('jQuery version ' + $().jquery + ' installed');
  App.initialize();
});

解决方案

The Mobile-Init-Event has to be bound before jQuery Mobile is loaded for it to be triggered correctly. Try using something like this:

require(["jquery"], function( $ ){
    $( document ).one( "mobileinit", function() {
        //Set your configuration and event binding
        $.mobile.ajaxEnabled = false;
        $.mobile.linkBindingEnabled = false;
        $.mobile.hashListeningEnabled = false;
        $.mobile.pushStateEnabled = false;
        // Remove page from DOM when it's being replaced 
        $('div[data-role="page"]').live('pagehide', function (event, ui) {
            $(event.currentTarget).remove();
        });
    });

    require( [ "App", "jquerym" ], function( App, jqm ) {
        /* Do Stuff with jqm here if you want like jqm.initializePage() if turned off */
        App.initialize();
    });
});

这篇关于骨干+ jQuery Mobile的+ RequireJS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆