我正在使用需要js和knockout js来开发coredova应用程序,当我使用淘汰赛验证时,它不起作用,它说" 脚本错误:淘汰赛" 。它显示在网络下的inspect元素中,www / js / knockout.js 404未找到,但在js文件夹中没有knockout.js文件,但它需要该文件,只有当我在define中使用knockout.validation时才会出现此错误method.But为什么它问这种类型的淘汰js文件 我做了简单的演示代码,请帮帮我
这是我的viewModel
define(['knockout-3.2.0','knockout.validation'], function(ko,validation) {
return function appViewModel() {
this.firstName = ko.observable('Bert').extend({ number: true,minLength: 3, maxLength: 10 });
};
});
这是我的需要路径设置
require.config({
paths: {
'jQuery': 'jQuery/jquery-2.1.1.min',
'knockout-3.2.0': 'ko/knockout-3.2.0',
'knockout.validation': 'ko/knockout.validation'
},
shim: {
'jQuery': {
exports: '$'
},
'knockout-3.2.0': {
exports: 'ko'
},
"knockout.validation": {
exports: 'validation'
}
}
});
答案 0 :(得分:4)
Knockout以及Knockout-Validation插件支持CommonJS和AMD模块模式,因此不需要shim
它们。
您收到错误,因为Knockout-Validation插件显式依赖于名为"knockout"
的模块(请参阅GitHub),因此要修复它,您需要重命名{{3}} 1}}模块到'knockout-3.2.0'
。
所以固定的require.js配置看起来像:
"knockout"
当然,在您的模块中,您需要使用名称require.config({
paths: {
'jQuery': 'jQuery/jquery-2.1.1.min',
'knockout': 'ko/knockout-3.2.0',
'knockout.validation': 'ko/knockout.validation'
},
shim: {
'jQuery': {
exports: '$'
}
}
});
:
"knockout"