命名空间敲除绑定时出现意外的令牌错误

时间:2014-09-18 14:26:30

标签: javascript knockout.js

使用Knockout构建一个简单的应用程序,我遇到了一个我不完全理解的错误。

鉴于这些绑定:

var bindings = {
    employee: {
        name: ko.observable("Employee Name"),
        address: ko.observable("Employee Address")
    },

    ...
};

ko.applyBindings(bindings);

我可以毫无问题地设置<input data-bind="value: employee.name">。当我尝试将员工包装在另一个对象中时,麻烦就开始了:

var bindings = {
    case: {
        name: ko.observable("Case Name"),

        employee: {
            name: ko.observable("Employee Name"),
            address: ko.observable("Employee Address")
        }
    },

    ...
};

ko.applyBindings(bindings);

尝试设置<input data-bind="value: case.employee.name">会返回错误Unexpected token: case。这是Knockout本身的某种限制,还是我忽略了一些明显的东西?谷歌搜索“意外的令牌错误淘汰”(及其变种)不会返回任何有用的结果。

1 个答案:

答案 0 :(得分:4)

case是保留字。当knockout尝试生成绑定函数时,js引擎将无法理解case字,并将生成该错误。使用另一个 - 不是保留字。