knockout.js中的函数参数未定义

时间:2012-06-03 17:29:16

标签: function knockout.js design-patterns undefined revealing-module-pattern

我正在使用Revealing Module Pattern来获取knockout.js代码中的一些结构。 这是一个非常简单的例子 目标:返回Object的Name-Property的值。 问题:函数参数x未定义。

http://jsfiddle.net/ThomasDeutsch/8hzhp/

这究竟是什么问题? 请帮我把这个弄出来。

2 个答案:

答案 0 :(得分:1)

也许你应该写

x.Name

而不是

x.getElementsByName('Name')

因为我没有看到x应该从哪里获取此方法,因为x不是文档树的元素。但我不是这方面的专家。

好的,这对我有用:

// My Model
function Customer(id, name, lastname) {
    this.Id = ko.observable(id);
    this.Name = ko.observable(name);
    this.LastName = ko.observable(lastname);
}

// My ViewModel
ViewModel = (function () {
    var customer = new Customer(1, "Thomas", "D")
    var getName = ko.computed(function () {
        return customer.Name ();
    })
    ;
    return {
        getName: getName
    };
})();

ko.applyBindings(ViewModel);

return语句中的getName必须是函数,而不是函数的结果。可能框架(我不知道)调用函数(没有参数)以获取值。

答案 1 :(得分:0)

我有解决方案。 问题是我没有定义一个函数。 ko.computed不会做这个工作。所以这是解决方案: Knockout.js: Function parameter undefined