jquery、jquery mobile、requireJS (2.0) を使用した作業プロジェクトがあります。jquery.mobile.iscrollview を requireJS の世界に統合する際に問題が発生しました。
私のrequirejs構成は次のようになります:
(function (require) {
"use strict";
require.config({
paths:{
'angular':'../external-libs/angular-1.0.3',
'jquery':'../external-libs/jquery-1.7.2',
'jquery.mobile':'../external-libs/jquery.mobile-1.2.0',
'adapter': '../external-libs/jquery-mobile-angular-adapter-1.2.0',
'moment': '../external-libs/moment-1.6.2.min',
'iscroll': '../external-libs/iscroll',
'iscrollview': '../external-libs/jquery.mobile.iscrollview'
},
shim:{
'angular':{ deps:['jquery'], exports:'angular' },
'iscroll':{ deps:['jquery'], exports:'iscroll' },
'iscrollview':{ deps:['jquery.mobile', 'iscroll'], exports:'iscrollview' }
}
});
require([
"jquery",
"jquery.mobile",
"adapter",
"moment",
"iscroll",
"iscrollview",
"myApp"
], function () {
//
});
}(require));
これは、1 つの大きな JS ファイルのみをクライアントに提供するプロダクション モードで requireJS オプティマイザが実行されていない限り、非常にうまく機能しています。オプティマイザーを何も最適化しない (最適化: なし) に設定しても、すべての js ファイルを連結するだけで、機能しません。
サイト読み込み時のエラーメッセージは
キャッチされていない TypeError: 未定義のプロパティ 'ignoreContentEnabled' を読み取ることができません
これはファイル「jquery.mobile.iscrollview.js」で発生し、コードから明らかなように、ファイルの解析時には $.mobile オブジェクトがまだ使用できないことがわかります。これは、jquery ready イベントの後にのみ作成されるためです (I考える)。
これを修正する方法はありますか?
ありがとう!
マルコ