0

私はRevealingModulePatternを使用して、knockout.jsコードの構造を取得しています。これは非常に単純な目標の例です。オブジェクトのName-Propertyの値を返します。問題:関数パラメーターxが未定義です。

http://jsfiddle.net/ThomasDeutsch/8hzhp/

ここでの問題は正確には何ですか?これをいじるのを手伝ってください。

4

2 に答える 2

1

おそらくあなたは書くべきです

x.Name

それ以外の

x.getElementsByName('Name')

xはドキュメントツリーの要素ではないため、xがこのメソッドをどこから取得する必要があるのか​​わかりません。しかし、私はこれに関する専門家ではありません。

わかりました、これは私のために働きます:

// 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 customer = new Customer(1, "Thomas", "D")
    var getName = ko.computed(function () {
        return customer.Name ();
    })
    ;
    return {
        getName: getName
    };
})();

ko.applyBindings(ViewModel);

returnステートメントのgetNameは、関数の結果ではなく、関数である必要があります。おそらく、フレームワーク(私にはわかりません)は、値を取得するために関数(引数なし)を呼び出します。

于 2012-06-03T17:37:19.487 に答える
0

私には解決策があります。問題は、関数を定義していないことでした。ko.computedはその仕事をしません。したがって、これが解決策です 。Knockout.js:関数パラメーターが未定義

于 2012-06-07T09:13:48.640 に答える