Knockout.js 敲除验证需要未知的敲除js文件

Knockout.js 敲除验证需要未知的敲除js文件,knockout.js,requirejs,knockout-validation,Knockout.js,Requirejs,Knockout Validation,我使用require js和knockout js开发coredova应用程序,当我使用knockout验证时,它不起作用,它说脚本错误为:knockout。它在网络下的inspect元素中显示以下内容,www/js/knockout.js 404未找到,但在js文件夹中没有knockout.js文件,但它需要该文件,只有当我在define方法中使用knockout.validation时才会出现此错误。但为什么它会询问这种类型的knockout js文件 我做了简单的演示代码,请帮帮我 这是我

我使用require js和knockout js开发coredova应用程序,当我使用knockout验证时,它不起作用,它说脚本错误为:knockout。它在网络下的inspect元素中显示以下内容,www/js/knockout.js 404未找到,但在js文件夹中没有knockout.js文件,但它需要该文件,只有当我在define方法中使用knockout.validation时才会出现此错误。但为什么它会询问这种类型的knockout 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'
         }
    }

});

Knockout和Knockout验证插件都支持CommonJS和AMD模块模式,因此不需要填充它们

之所以会出现错误,是因为Knockout验证插件显式依赖名为Knockout的模块。请参见,要修复此错误,您需要将“Knockout-3.2.0”模块重命名为Knockout

因此,固定require.js配置如下所示:

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:

define(['knockout','knockout.validation'], function(ko, validation) {

    return function appViewModel() {
        this.firstName = ko.observable('Bert').extend({ number: true,minLength: 3, maxLength: 10 });

    };
});