0

剣道グリッドへのノックアウト.jsバインディングにノックアウト-剣道.jsを使用しています。オブジェクトの最初のレベルのプロパティをバインドすると、正常に機能します。ここにサンプルがあります - http://jsfiddle.net/rniemeyer/jZtg5/

上記の例では、items プロパティはビューモデル (つまり、ViewModel.Items) で定義されています。

ただし、オブジェクトの第 2 レベル プロパティを使用して剣道グリッドにバインドすると、機能しません。これはバインディングが機能しないサンプルです - http://jsfiddle.net/thakkar/QhF2W/3/

この例では、items プロパティはビューモデルで直接定義されていません。代わりに、ビューモデルで使用されるオブジェクトのプロパティです。(つまり、ViewModel.obj.Items)

var Item = function(id, name, type) {
    this.id = id;
    this.name = ko.observable(name);
    this.type = type;
};

var vm2 = function() {
    this.items = ko.observableArray([
        new Item(1, "one", "a"),
        new Item(2, "two", "b"),
        new Item(3, "three", "a")
    ]);

var ViewModel = function() {
    this.obj = ko.observable(new vm2())
};

ko.applyBindings(new ViewModel());
4

1 に答える 1