Javascript 将Linq.js与Durandal/Require.js一起使用
我已完成以下设置:Javascript 将Linq.js与Durandal/Require.js一起使用,javascript,requirejs,durandal,linq.js,weyland,Javascript,Requirejs,Durandal,Linq.js,Weyland,我已完成以下设置: 添加了以下脚本标记: <script src="Scripts/linq.js"></script> 尝试在我的一个viewmodel(shell.js)中获取它的副本,如下所示: define(['plugins/router', 'durandal/app','linq'], function (router, app, linq) 使用weyland优化构建,但我得到: 错误1 eNONT,没有这样的文件或目录 'C:\Project\
<script src="Scripts/linq.js"></script>
define(['plugins/router', 'durandal/app','linq'], function (router, app, linq)
除了垫片之外,我还需要创建自己的定义吗?我认为Shim应该是一个语法上的糖衣包装器,覆盖了一个全局变量的定义?在这种情况下不需要Shim,因为
linq
是通过脚本标记包含的。在通过require.js加载main.js
之前,只需确保通过脚本标记加载linq
。接下来删除配置项和依赖项
requirejs.config({
paths: {
'text': '../Scripts/text',
'durandal': '../Scripts/durandal',
'plugins': '../Scripts/durandal/plugins',
'transitions': '../Scripts/durandal/transitions',
'knockout': '../Scripts/knockout-2.3.0',
'jquery': '../Scripts/jquery-1.9.1,'
}
}
});
define(['plugins/router', 'durandal/app'], function (router, app){...
这样就不需要配置weyland来排除它。Rainer,我更喜欢让requirejs尽可能包含它,然后直接引用脚本。删除脚本标记会导致另一个错误(因为它试图解决“linq”):“加载组合模块(viewmodels/shell)失败。详细信息:脚本错误:linq”您能想出一个最小的dFiddle()来说明问题吗?我将脚本从路径信息中拉出,并让页面加载它。这似乎奏效了。虽然我还不清楚我什么时候想用垫片,在这种情况下是否合适。但问题是下次再说。
requirejs.config({
paths: {
'text': '../Scripts/text',
'durandal': '../Scripts/durandal',
'plugins': '../Scripts/durandal/plugins',
'transitions': '../Scripts/durandal/transitions',
'knockout': '../Scripts/knockout-2.3.0',
'jquery': '../Scripts/jquery-1.9.1,'
}
}
});
define(['plugins/router', 'durandal/app'], function (router, app){...