我有一个非常简单的例子,但不起作用。
jsfiddle:http://jsfiddle.net/ThomasDeutsch/8hzhp/3/ http://jsfiddle.net/ThomasDeutsch/8hzhp/3/
// 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 getName = ko.computed(function (x) {
return x.Name();
});
return {
getName: getName(new Customer(1, "Thomas", "D"))
};
})();
ko.applyBindings(ViewModel);
problem:参数 (x) 未定义
goal:返回被调用对象的名称属性 - 我想使用 x 作为属性,以便我可以使用具有可观察名称属性的任何对象调用此函数
代码解释:
这是通过使用 Revealing-module-pattern 和 Knockout.js 来完成的。 Name 属性是 ko.observable() - 因此需要 ()。
question:为什么 x 未定义?
让我问问你。你认为 x 是在哪里定义的?
您正在调用 getName 并传递 Customer,但 getName 不需要参数。
如果你像这样重写你的函数,它将起作用:
var getName = function(x) { return ko.computed( function() {
return x.Name();
})};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)