因此,也有类似的问题浮出水面,但我希望得到一个最新的答案。
版本-
微风: 1.4.0淘汰赛: 2.2.1 RequireJS: 2.1.5
我正试图在requireJS项目中加载knockoutJS。我们的requireJS配置非常简单-
require.config({
waitSeconds: 15,
paths: {
'templates': "/ist-common/templates",
'lib': '/ist-common/js/lib',
'ist': '/ist-common/js/ist'
}
});
所以我把微风库加载到下面的目录结构中-
库
->q.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以满足需求,但是这感觉是错误的。我为什么要设置窗户?难道我不能作为一个命名模块访问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'
}
};
发布于 2013-09-07 03:50:48
你也需要为微风(从Using Angular with breeze and require)的垫片。
breeze: {
deps: ['ko', 'jquery', 'Q']
},
这是必需的,因为虽然微风确实定义了自己,但它没有定义它的依赖项,但它只是希望它们存在(RequireJs不能用变量而不是字符串来解释它的依赖性?)。
shim也是必需的,因为微风请求' jQuery‘,但是jquery代码将自己定义为'jquery’。
https://stackoverflow.com/questions/17844754
复制相似问题