我在JS编写一个小应用程序,我决定使用Knockout。 一切都运作良好,除了单个值没有正确打印,我不明白为什么。
这是错误附加的html视图(viaggio.arrivo未可视化,代替正确的值会出现像这样的“function c(){if(0 <arguments.length){if ...
”之类的功能代码等等。
<input data-bind="value: viaggio.arrivo" />
这是javascript View Model。 代码很长,所以我把它放在jsFiddle。
function ViewModel() {
function Viaggiatore(nome, cognome, eta, citta) {
var self = this;
self.nome = nome; self.cognome = cognome;
self.eta = ko.observable(eta);
self.citta = ko.observable(citta);
}
function Viaggio(viaggiatore, partenza, arrivo, mete) {
var self = this;
self.viaggiatore = ko.computed(viaggiatore);
self.partenza = ko.computed(partenza);
self.arrivo = ko.observable(arrivo);
self.mete = ko.computed(mete);
}
self.viaggiatore = new Viaggiatore("Mario", "Rossi", 35, "Como");
self.viaggio = new Viaggio(
function(){ return self.viaggiatore.nome+" "+self.viaggiatore.cognome; },
function(){ return self.viaggiatore.citta; },
"Roma",
function(){ return "mete" ;}
);
}
ko.applyBindings(new ViewModel());
答案 0 :(得分:1)
我认为你的一个参数需要括号,如下:
<p data-bind="text: viaggio.partenza()"></p>
查看更新后的小提琴:http://jsfiddle.net/mGDwy/2/