web-dev-qa-db-ja.com

プレフィックスを含むknockoutjsでid属性を設定する

次のように、KnockoutJSを使用してオブジェクトを反復処理しています。

今、これはすべて動作します。しかし、私が持っている問題は、idbuttonを単なる数値に設定することです。したがって、次のようになります。

<button id="1">Button 1</button>
<button id="3">Button 2</button>
<button id="8">Button 3</button>

だから私は次のように「Id」プロパティの前にプレフィックスを付けようとしました:

<div data-bind="foreach:Items">
    <button data-bind="text: Name, attr: {'id': 'myprefix_' + Id}"></button>
</div>

しかし、それは機能していないようです。私のidは、そのようにするとノックアウトの観測可能な関数で満たされます...

だから私の質問は、フィールドのid属性を指定するときにどのようにプレフィックスを追加できますか?

71
w00

Idがオブザーバブルである場合、'myprefix_' + Id()を「ラップ解除」する必要があります。

54
Michael Best

今日これを実際に使用しました-私がしなければならなかった観察可能物を解くために:

<button data-bind="attr: { id: 'prefix_' + $index() }"> Send </button>

お役に立てれば。

64

たとえば$ indexを使用するのが最善だと思います

<div data-bind="foreach:Items">
    <button data-bind="text: Name, attr: {id: 'myprefix_' + $index() }"></button>
</div>
25
code5