0

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

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

到底是什么问题吗? 请帮我把这一个摆出来。

+0

解决方案: http://stackoverflow.com/questions/10873214/knockout-js-function-parameter-undefined –

回答

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); 

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

+0

谢谢你,但是这并没有帮助。问题是x是不确定的 - 我不知道为什么。顺便说一句。 x.Name将返回observable函数。 x.Name()可能是正确的调用。 –

+0

我编辑了我的答案。也许它有点帮助你。 – JohnB

+0

这是我的解决方案。比我想拥有更多可重用的代码 - 所以我将客户从功能中移出,并用x属性替换它。所以我可以使用每个具有Name-Property的对象来使用此功能。这是我需要的最佳做法。 –