0

アプリと特定のAndroidデバイスでrequireを使用していますが、ウェブ上でjQueryが定義されていない、またはバックボーンが定義されていないなどのエラーが時々発生します]

私のインデックスページはシンプルで、必要なものへのリンクがあります

<script data-main="js/main" src="js/vendor/require/require.js"></script>

ここで、すべてのパスとルーターの呼び出しをセットアップし、JQM のルーティングをオフに切り替えます

require.config({

paths: {
    jquery:     'vendor/jqm/jquery_1.7_min',
    jqm:     'vendor/jqm/jquery.mobile-1.1.0', 
    underscore: 'vendor/underscore/underscore_amd',
    backbone:   'vendor/backbone/backbone_amd',
    text:       'vendor/require/text',
    templates:  '../templates',
    views:    '../views',
    models:       '../models'
}

});

define(['router','jqm-config'], function(app) {
});

次に、ルーターページで、そこで必要なものを定義します..

define(['jquery', 'underscore', 'backbone','views/home/home',
        'models/products/productCollection',
        'views/products/productTypes',   
        'jqm'], 
function($, _, Backbone,HomeView,ProductsType,ProductListView ) {

       var AppRouter = Backbone.Router.extend({
        //code here
        });

$(document).ready(function () {
    console.log('App Loaded');
    app = new AppRouter();
    Backbone.history.start();
    });

    return AppRouter;
});

これらのエラーの発生を停止するにはどうすればよいですか?

4

1 に答える 1

1

require.config に shim セクションを追加して、これらの依存関係を定義できます。

require.config({
  // The shim config allows us to configure dependencies for
  // scripts that do not call define() to register a module
  shim : {
    'underscore' : {
      exports : '_'
    },
    'backbone' : {
      deps : [ 'underscore', 'jquery' ],
      exports : 'Backbone'
    },
    'dataTables' : {
      deps : [ 'jquery' ],
      exports : 'dataTables'
    }
  },
  paths : {
...
于 2012-12-12T09:05:51.457 に答える