加载我的付款模块,我收到“无法加载路由模块(付款)”。未定义不是一个功能'错误。我已经尝试了一切,甚至将它回滚到一周前发生的一些提交,并继续得到同样的错误。经过大量的故障排除后,我将其追溯到我的dataservice。我发现当我删除所有对“微风”的引用时在我的数据服务中,它按预期加载(当然,虽然不起作用)。如果我添加'微风'回到'定义'依赖数组,我得到的undefined不是函数错误。
我还没有改变要求。 config,但我已将其粘贴到我的dataservice的define语句中。
require.config({
paths: {
'ko': '../Scripts/knockout-3.1.0',
'breeze': '../Scripts/breeze.debug',
'jquery': '../Scripts/jquery-2.1.1',
'jquery-ui': '../Scripts/jquery-ui-1.11.2',
'bootstrap': '../Scripts/bootstrap.min',
'text': '../Scripts/text',
'require': '../Scripts/require',
// JS Object Serializer/deserializer. Handled cyclic objects, efficient stringifying.
'JSOG': '../Scripts/JSOG',
'domReady': '../Scripts/domReady',
'Q': '../Scripts/q',
// Notifications
'toastr': '../Scripts/toastr',
//Durandal
'durandal': '../Scripts/durandal',
'plugins': '../Scripts/durandal/plugins',
'transitions': '../Scripts/durandal/transitions',
// Lazy-developer date formatting
'moment': '../Scripts/moment.min'
},
map: {
'*': { 'knockout': 'ko' } // Necessary for Durandal, expects Knockout to be 'knockout', not 'ko'
// Breeze expects 'ko'??
},
shim: {
'bootstrap': {
deps: ['jquery'], // don't load the bootstrap.js until jquery is loaded
exports: 'bootstrap'
},
'JSOG': {
exports: 'JSOG'
}
}
和我对dataservice的define语句:
define(['ko', 'breeze', 'logger', 'Q', 'constants', 'JSOG'], function (ko,breeze,logger,Q,c,JSOG) {
请帮忙。我确定它很简单,但我一直在撕扯我的头发。
编辑:根据Jeremy的要求,这是堆栈跟踪:
TypeError: undefined is not a function
at proto.initialize (http://localhost:62418/Scripts/breeze.debug.js:15785:26)
at initializeAdapterInstanceCore (http://localhost:62418/Scripts/breeze.debug.js:1870:14)
at Object.__config.getAdapterInstance (http://localhost:62418/Scripts/breeze.debug.js:1818:14)
at breeze.AbstractDataServiceAdapter.proto.initialize (http://localhost:62418/Scripts/breeze.debug.js:15437:30)
at initializeAdapterInstanceCore (http://localhost:62418/Scripts/breeze.debug.js:1870:14)
at __config.initializeAdapterInstance (http://localhost:62418/Scripts/breeze.debug.js:1791:12)↵ at __objectMap (http://localhost:62418/Scripts/breeze.debug.js:56:27)
at Object.__config.initializeAdapterInstances (http://localhost:62418/Scripts/breeze.debug.js:1765:12)
at http://localhost:62418/Scripts/breeze.debug.js:17358:15
at def (http://localhost:62418/Scripts/breeze.debug.js:10:34)"
即使我重构并摆脱Durandal和Require js,这个错误似乎也会发生。即使加载了Jquery(以及KO和Q),我在var $injector = ng.injector(['ng']);
得到一个错误,显然它正在尝试加载角度ajax调用,即使没有定义angular。
答案 0 :(得分:2)
看起来我想通了。我也在AngularJS做了一些开发工作,很多时候我为Chrome安装了AngularJS Batarang扩展。我有一段时间没用过它,所以我忘了它。我禁用它,关闭并重新打开浏览器 - Walla! - 一切都恢复了。
我猜是微风以某种方式检测到角度被加载在扩展中,然后试图加载$ http,它无法访问,一切都崩溃了。我不知道它为什么会在昨天开始发生(也许它已被禁用,并且不知何故偶然地再次启用)但这就是问题所在。我可以让错误发生或随意消失。