我将我的代码上传到 jsFiddle,你可以在那里测试它。
这是问题所在,而不是获得全名,它显示了函数的源代码。如果我使用 ko.computed,它将起作用。我在下面所做的也应该没问题。有人可以向我解释为什么它显示源代码,而不是价值。
<p>First name: <input data-bind="value: firstName" /></p>
<p>Last name: <input data-bind="value: lastName" /></p>
<p>Full name: <span data-bind="text: fullName"></span></p>?
KO代码:
function AppViewModel() {
self = this;
self.firstName = ko.observable("Bert");
self.lastName = ko.observable("Bertington");
self.fullName = function(){
return self.firstName() + " " + self.lastName();
};
}
// Activates knockout.js
ko.applyBindings(new AppViewModel());?
更新:
回答中医的问题。为什么我不想使用 ko.computed。并不是我不想使用它,只是因为我很困惑,不知道什么时候使用它。例如
以下代码来自淘汰赛第一个教程。它不使用 ko.computegd,但它可以工作。
http://learn.knockoutjs.com/#/?tutorial=intro
self.capName = function(){
var curVal = self.lastName();
self.lastName(curVal.toUpperCase());
};