使用包含前缀的knockoutjs设置id属性

w00*_*w00 74 knockout-2.0 knockout.js

我正在使用KnockoutJS迭代一个对象,如下所示:

现在这一切都有效.但我的问题是,它设置idbutton只是一个数字.所以它看起来像这样:

<button id="1">Button 1</button>
<button id="3">Button 2</button>
<button id="8">Button 3</button>
Run Code Online (Sandbox Code Playgroud)

所以我试图在'Id'属性前加一个前缀,如下所示:

<div data-bind="foreach:Items">
    <button data-bind="text: Name, attr: {'id': 'myprefix_' + Id}"></button>
</div>
Run Code Online (Sandbox Code Playgroud)

但这似乎并没有奏效.id当我这样做的时候,我会充满一些Knockout可观察功能......

所以我的问题是,当我指定id字段的属性时,如何添加前缀?

Cor*_*nce 67

实际上今天使用这个 - 解开我必须做的观察:

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

希望这可以帮助.


Mic*_*est 55

如果Id是可观察的,你必须"解开"它:'myprefix_' + Id().


cod*_*de5 27

我认为最好使用$ index作为示例

<div data-bind="foreach:Items">
    <button data-bind="text: Name, attr: {id: 'myprefix_' + $index() }"></button>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 在我发现之前,至少在我的特定情况下,我不得不使用"$ index()",而不仅仅是"$ Index". (5认同)