【发布时间】:2013-07-24 13:30:53
【问题描述】:
所以有类似的问题在流传,但我希望能得到最新的答案。
版本-
微风:1.4.0 淘汰赛:2.2.1 要求JS:2.1.5
我正在尝试使用 knockoutJS 在 requireJS 项目中加载微风。我们的 requireJS 配置非常简单-
require.config({
waitSeconds: 15,
paths: {
'templates': "/ist-common/templates",
'lib': '/ist-common/js/lib',
'ist': '/ist-common/js/ist'
}
});
所以我将微风库加载到以下目录结构中-
库
---->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
编辑*
我能够让它使用以下配置加载 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'
}
};
【问题讨论】:
-
您使用的是哪个版本? (微风)
-
使用版本编辑 - 微风:1.4.0 淘汰赛:2.2.1 RequireJS:2.1.5
标签: javascript knockout.js requirejs breeze amd