我正在尝试将ngTable与require.js和head.js一起使用,但我收到以下错误:
未捕获错误:匿名的define()模块不匹配:
function (angular) {
return factory(angular);
}
这是我的require config:
(function(head){
'use strict';
head.js(
{ jquery: "../vendor/jquery/dist/jquery.js"},
{ require: "../vendor/requirejs/require.js" },
{ angularjs: "../vendor/angular/angular.js" },
{ uiRouter: "../vendor/angular-ui-router/release/angular-ui-router.js" },
{ angularTable: "../vendor/ng-table/ng-table.js"}
).ready("ALL", function(){
require.config({
appDir: '',
baseUrl: '',
paths: {
},
shim: {
angularjs: {
deps: ['jquery'],
exports: 'angular'
},
uiRouter: {
deps: ['angularjs'],
exports: ""
},
angularTable:{
deps: ['jquery', 'angularjs'],
exports: ""
}
}
});
require(['config'], function(config){
// app bootstrap and start
});
});
}(window.head));
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
我不熟悉head.js
但是从一点搜索看来,你正在使用它来加载jQuery,AngularJS等。然后,在RequireJS中你的代码将jQuery,AngularJS等列为依赖项。您通常不能两种方式:在RequireJS外部和内部加载RequireJS模块。在不知道您的应用程序的情况下,最合适的解决方案是使用RequireJS加载所有模块。
答案 1 :(得分:0)
好吧,我刚刚发现了这个问题,但我没有时间发布它。 RequireJs文档说必须加载所有通过RequireJs调用define的脚本(ngTable中有一个define调用)。如上所示,我使用head.js加载ngTable。解决方案是从ngTable中删除定义调用。希望它可以帮助别人!