我正在使用Revealing模块模式来获取我的knockout.js代码中的一些结构。 这是一个非常简单的示例 目标:返回对象的Name-Property的值。 问题:函数参数x未定义。函数参数在knockout.js中未定义
http://jsfiddle.net/ThomasDeutsch/8hzhp/
到底是什么问题吗? 请帮我把这一个摆出来。
我正在使用Revealing模块模式来获取我的knockout.js代码中的一些结构。 这是一个非常简单的示例 目标:返回对象的Name-Property的值。 问题:函数参数x未定义。函数参数在knockout.js中未定义
http://jsfiddle.net/ThomasDeutsch/8hzhp/
到底是什么问题吗? 请帮我把这一个摆出来。
我有解决方案。 问题是我没有定义一个函数。 ko.computed不会完成这项工作。因此,这是解决方案: Knockout.js: Function parameter undefined
也许你应该写的
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语句必须是一个函数,而不是一个函数的结果。可能框架(我不知道)调用该函数(不带参数)以获取该值。
谢谢你,但是这并没有帮助。问题是x是不确定的 - 我不知道为什么。顺便说一句。 x.Name将返回observable函数。 x.Name()可能是正确的调用。 –
我编辑了我的答案。也许它有点帮助你。 – JohnB
这是我的解决方案。比我想拥有更多可重用的代码 - 所以我将客户从功能中移出,并用x属性替换它。所以我可以使用每个具有Name-Property的对象来使用此功能。这是我需要的最佳做法。 –
解决方案: http://stackoverflow.com/questions/10873214/knockout-js-function-parameter-undefined –