0

私はJSで小さなアプリケーションを書いているので、Knockoutを使用することにしました。正しく印刷されない単一の値を除いて、すべてがうまく機能し、その理由がわかりません。

これは、エラーが追加されるhtmlビューです(viaggio.arrivoは視覚化されておらず、正しい値の代わりに次のような関数コードが表示されます " function c(){if(0 <arguments.length){if ..."など)

<input data-bind="value: viaggio.arrivo"  />

そしてこれがjavascriptビューモデルです。コードはかなり長いので、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());
4

1 に答える 1

1

次のように、パラメーターの1つに括弧が必要だと思います:

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

更新されたフィドルをチェックしてください: http://jsfiddle.net/mGDwy/2/

于 2012-08-20T18:09:34.720 に答える