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

时间:2012-09-20 08:03:38

标签: knockout.js knockout-2.0

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

    

现在一切正常。但我遇到的问题是它将id的{​​{1}}设置为一个数字。所以它看起来像这样:

button

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

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

但这似乎不起作用。当我这样做时,<div data-bind="foreach:Items"> <button data-bind="text: Name, attr: {'id': 'myprefix_' + Id}"></button> </div> 充满了一些Knockout可观察函数......

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

4 个答案:

答案 0 :(得分:63)

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

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

希望这有帮助。

答案 1 :(得分:54)

如果Id是可观察的,则必须“展开”它:'myprefix_' + Id()

答案 2 :(得分:25)

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

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

答案 3 :(得分:-1)

       <img data-bind="event: {click: $root.afficherDetailmembreFamille}" src="ucc/gestion_Famille/images/arbre-fleche-off.png" />

          <label data-bind=" text: nom"></label>
          <label data-bind=" text: prenom, click: $root.afficherDetailmembreFamille"></label>
  <br>

   <div data-bind="attr: {'id': 'DivMembreFamille'+id}" style="margin-left: 40px; display: none;">