RequireJS を使用して、jQuery 検証スクリプト ファイルへの参照を追加しようとしています。通常の 1 つではなく、3 つのスクリプト ファイルがあります。
- jquery.validate - jquery 検証ライブラリ
- jquery.validate.unobtrusive - これにより、jquery 検証ライブラリに目立たない検証が追加されます (データ属性を使用して自動的に関連付けることができます)。これは jquery.validate に依存します
- jquery.validate.custom - これは、独自の控えめな検証メソッドを追加し、jquery.validate.unobtrusive に依存します
次の構成をセットアップしました。
require.config({
paths: {
'jquery': 'Scripts/jquery-1.8.3.min',
'jquery.validate': 'Scripts/jquery.validate.custom'
},
shim: {
'Scripts/jquery.validate': ['jquery'],
'Scripts/jquery.validate.unobtrusive': ['jquery', 'Scripts/jquery.validate'],
'Scripts/jquery.validate.custom': ['jquery', 'Scripts/jquery.validate.unobtrusive']
}
});
今、私は次のモジュールを持っています:
define(['jquery', 'jquery.validate'], function($) {
alert('Yey!');
});
ただし、jquery.validate.custom ファイルにエラーがスローされ、目立たない依存関係が注入されていないことがわかります。ブラウザ ツールでデバッグを行い、ネットワーク タブを見ると、jquery.validate.custom.js ファイルと jquery.validate.js ファイルが正常にダウンロードされていることがわかりますが、jquery.validate.unobtrusive をダウンロードしようとさえしていません。 js ファイル。
誰かが私が間違っていることを教えてくれれば幸いです。ありがとう
編集:
私は今試しました:
require.config({
paths: {
'jquery': 'Scripts/jquery-1.8.3.min',
'jquery.validate': 'Scripts/jquery.validate.custom'
},
shim: {
'Scripts/jquery.validate': ['jquery'],
'Scripts/jquery.validate.unobtrusive': ['jquery', 'Scripts/jquery.validate'],
'jquery.validate': ['jquery', 'Scripts/jquery.validate.unobtrusive']
}
});
そして、それは正しく動作します。見栄えが良いと思うので、次のことも試しました。
require.config({
paths: {
'jquery': 'Scripts/jquery-1.8.3.min',
'jquery.validate': 'Scripts/jquery.validate.custom',
'jquery.validate.core': 'Scripts/jquery.validate',
'jquery.validate.unobtrusive': 'Scripts/jquery.validate.unobtrusive'
},
shim: {
'jquery.validate.core': ['jquery'],
'jquery.validate.unobtrusive': ['jquery', 'jquery.validate.core'],
'jquery.validate': ['jquery', 'jquery.validate.unobtrusive']
}
});
しかし、これによりタイムアウトエラーが発生します。
2番目のソリューションが機能しない理由を誰かが説明できれば、それは素晴らしいことです。ありがとう