0

監視可能な配列を持つモデルがあり、データをテキスト ボックスに表示できますが、それを元の配列にバインドする方法がわかりません。

ここに私が持っている作業サンプルがあります。

<ul data-bind='foreach: frameworks'>
    <li>
        <button class='btn' value='pick me'             
            data-bind='text: name, click: $parent.selectFramework'>            
        </button>
    </li>
</ul>
<input type='text' data-bind='value: selectedFramework().name' />
<pre data-bind='text: ko.toJSON($root.selectedFramework, null, 4)'>
</pre>



var Framework = {
    name: ''
};

var App = new function () {
        var self = this;
        self.frameworks = ko.observableArray();
        self.selectFramework = function (item) {
            self.selectedFramework(item);
        };
        self.selectedFramework = ko.observable(Framework);
    };

App.frameworks([{name: 'foo'}, {name: 'bar'}]);

ko.applyBindings(App);
4

2 に答える 2

0

値は selectedFramework オブザーバブルにのみ保存されるため、App.selectedFramework() を介してアクセスできます。オブザーバブルは変数を取らず、オブザーバブルにします。内部的に渡した値を格納します。外部フレームワーク変数を更新する場合は、selectFramework 関数で行います。

self.selectFramework = function (item) {
        self.selectedFramework(item);
        Framework = item;
    };
于 2013-05-30T00:24:55.313 に答える
0

あなたはほとんどそこにいます。各フレームワークの「名前」プロパティを監視可能にする必要があります。ここで JsFiddleを更新しました

App.frameworks([{
    name: ko.observable('foo')
}, {
    name: ko.observable('bar')
}]);
于 2013-05-30T00:26:19.927 に答える