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

Knockout validation require unknown knockout js file

我正在使用 require js 和 knockout js 来开发 coredova 应用程序,当我使用 knockout 验证时,它不起作用,它显示“Script error for: knockout”。它在网络下的检查元素中显示以下内容,www/js/knockout.js 404 未找到,但在 js 文件夹中没有 knockout.js 文件,但它需要该文件,仅当我使用 [=22 时才会出现此错误=] in define method.But 为什么会问这种knockout js文件 我做了简单的演示代码,请帮助我

这是我的视图模型

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-Validation 插件同时支持 CommonJS 和 AMD 模块模式,因此不需要 shim 它们。

您收到错误是因为 Knockout-Validation 插件 明确依赖名为 "knockout" 的模块(参见 GitHub),因此您需要修复它将 '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 });

    };
});