0

文字列の単純な配列をリストにバインドしました。
Knockout はこれを正しく表示します。

<input data-bind="value: clicked" />
<ul data-bind="foreach: strArr, click: $root.selectStr">
    <li data-bind="text: $data"></li>
</ul>

ユーザーがリスト項目の 1 つをクリックすると、リスト項目にバインドした文字列を入力したいと考えています。ただし、クリック関数が受け取るオブジェクトは、完全なノックアウト モデルのようです。

function StringViewModel() {
    var self = this;
    self.strArr = ko.observableArray(["one", "two", "three"]);
    self.clicked = ko.observable();

    self.selectStr = function (str) {
        console.log(str);
        self.clicked(str);
    }
}
ko.applyBindings(new StringViewModel());

ここにjsFiddleがあります

selectStrリスト項目からテキストを表示するように関数を作成するにはどうすればよいですか。[「1」、「2」、「3」]のいずれか。

これは簡単に解決できる問題のように感じましたが、ノックアウトを初めて使用した日から、基本的なものが欠けている可能性があります。

4

1 に答える 1