【问题标题】:knockout.mapping & Require.js bugknockout.mapping 和 Require.js 错误
【发布时间】:2013-09-26 08:52:45
【问题描述】:

所以我正在尝试将 knockout.mapping.js 与 require.js 集成。我已尝试遵循 this 示例。

不幸的是,我不断收到此错误:

GET http://[url]/Scripts/app/contractor/ko.js 404(未找到)
未捕获的错误:脚本错误:ko

我已经设置了以下文件:

app.index.js

requirejs.config({
    "baseUrl": "../Scripts/app/contractor",
    "paths": {
        "app.index": "app.index",
        "knockout": "//cdnjs.cloudflare.com/ajax/libs/knockout/2.2.1/knockout-min",
        "mapping": "//cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.3.5/knockout.mapping",
        "knockout.bindings": "../../lib/knockout.bindings",
        "fu": "../../lib/jquery.fineuploader-3.8.0",
        "s2": "../../lib/select2",
        "jquery": "//code.jquery.com/jquery-latest.min",
        "jqueryui": "//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min",
        "moment": "../../lib/moment.min",
        "toastr": "../../lib/toastr"
    },
    "shim": {
        'mapping': {
            deps: ['knockout'],
            exports: 'mapping'
        }
    }
});

// Load the main app module to start the app
require(['knockout', 'mapping', "main.index"], function (ko, mapping, bs) {
    ko.mapping = mapping;
    alert('ko: ' + ko + ', mapping: ' + ko.mapping);
    bs.run();
});

main.index.js

    define(['knockout',
            'mapping',
            'indexViewModel'],
       function (ko, mapping, indexViewModel) {
           var
               run = function () {

                   var vm = new indexViewModel();


                   ko.applyBindings(vm, document.getElementById('#contractor-home-view'));
               };
           return {
               run: run
           };
       });

main.index.js 在这一点上是无关紧要的,因为映射没有正确加载。我在这里做错了什么?

【问题讨论】:

  • 您的示例中似乎没有"ko.js" 文件。我只能假设您有一些其他代码正在尝试使用不存在的名为 "ko"(而不是 "knockout")的依赖项。
  • 我在 requirejs.config 部分加载了 knockout.js。有趣的是,当我进行这样的配置时:“ko”:“//cdnjs.cloudflare.com/ajax/libs/knockout/2.2.1/knockout-min”。它告诉我 knockout.js 丢失了。
  • 抱歉的意思是“它告诉我‘淘汰赛’不见了”

标签: requirejs knockout-mapping-plugin


【解决方案1】:

尝试在您的 .config 中进行此设置

"shim": {
        'knockout': {
          exports: 'ko'
        },
        'mapping': {
          deps: ['knockout'],
          exports: 'mapping'
        }
    }

【讨论】:

    猜你喜欢
    • 2013-07-22
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 2013-06-09
    相关资源
    最近更新 更多