【问题标题】:ko is undefinedko 未定义
【发布时间】:2013-03-10 07:07:44
【问题描述】:

我得到:

未捕获的类型错误:无法调用未定义的方法“applyBindings”

我查看了 chrome 中的“网络”选项卡,我看到 Knockout.js 已加载。 我可以在控制台选项卡上输入window.ko 并查看淘汰赛的代码

那么,为什么会出错?

config.js:

var require = {
  baseUrl: "/scripts"
};

main.js:

require([
    "lib/knockout"
],
function (ko) {
    ko.applyBindings();
});

index.html:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="scripts/config.js"></script>
    <script data-main="app/main.js" src="scripts/lib/require.js"></script>    
</head>
<body>
    <input type="text" data-bind="value: test" />
</body>
</html>

【问题讨论】:

标签: javascript knockout.js requirejs


【解决方案1】:

您应该在 requirejs 中查找 shim 配置并导出 ko 符号。

【讨论】:

    【解决方案2】:

    尝试从您的回调签名中删除 ko 参数。

    【讨论】:

    • 您正在使用传递给回调的ko,而不是预期的window.ko
    • 是的,但我经常看到这是用 require() 和 define() 完成的,它们将定义中的顺序与回调中的顺序匹配?
    猜你喜欢
    • 1970-01-01
    • 2016-05-30
    • 2013-12-14
    • 2013-09-21
    • 2013-04-01
    • 1970-01-01
    • 2013-02-17
    • 2014-10-10
    • 2014-03-28
    相关资源
    最近更新 更多