そのため、同様の質問が飛び交っていますが、これについて最新の回答を得たいと考えています。
バージョン-
そよ風: 1.4.0 ノックアウト: 2.2.1 RequireJS: 2.1.5
ノックアウトJSを使用してrequireJSプロジェクトにそよ風をロードしようとしています。私たちのrequireJS構成は非常にシンプルです-
require.config({
waitSeconds: 15,
paths: {
'templates': "/ist-common/templates",
'lib': '/ist-common/js/lib',
'ist': '/ist-common/js/ist'
}
});
そこで、そよ風のライブラリを次のディレクトリ構造にロードしました-
lib
---->q.js
---->breeze.debug.js
私はそよ風を使用するように「データサービス」モジュールを定義しようとしています-
define(['lib/knockout', 'lib/q', 'lib/breeze.debug'], function (ko, Q, breeze) {
var serviceName = '/ist/rest'; // route to the endpoint
var manager = new breeze.EntityManager(serviceName);
manager.enableSaveQueuing(true);
var query = new EntityQuery("missions");
manager.executeQuery(query, function(data) {
console.log("success");
});
});
この構成は可能ですか?スクリプトタグを最小限に抑え、requireJS のみをロードしてから、モジュール定義内で必要に応じてノックアウト、jquery などをロードしようとしています。
この構成は現在、メッセージで失敗します-
エラー: Q を初期化できません。https://github.com/kriskowal/qを参照してください。
編集*
以下のrequireの設定でQをロードすることができましたが、これは間違っているように感じます。window.Q を設定する必要があるのはなぜですか? 名前付きモジュールとして Q にアクセスできないのでしょうか?
var require = {
waitSeconds: 15,
deps: ["/ist-common/js/lib/q.js"],
callback: function(Q){
window.Q = Q;
},
paths: {
'templates': "/ist-common/templates",
'lib': '/ist-common/js/lib',
'ist': '/ist-common/js/ist'
}
};