knockout绑定打印函数文本而不是变量值

时间:2012-08-20 18:02:42

标签: javascript knockout.js

我在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());

1 个答案:

答案 0 :(得分:1)

我认为你的一个参数需要括号,如下:

<p data-bind="text: viaggio.partenza()"></p>

查看更新后的小提琴:http://jsfiddle.net/mGDwy/2/