Уникальные идентификаторы в шаблонах knockout.js

Предположим, у меня есть шаблон knockout.js, подобный этому:

<script type="text/html" id="mytemplate">
    <label for="inputId">Label for input</label>
    <input type="text" id="inputId" data-bind="value: inputValue"/>
</script>

Если я отображаю этот шаблон в нескольких местах на странице, я получаю несколько входов с одинаковым идентификатором (и несколько ярлыков с одинаковымза значение), что имеет плохие последствия. В частности, весь код, который зависит от идентификаторов, может работать неправильно (в моем случае я использую плагин jquery.infieldlabel, который путается из-за нескольких входов с одинаковым идентификатором). Способ решения этой проблемы теперь заключается в добавлении уникального атрибута id в модель, которую я связываю с шаблоном:

<script type="text/html" id="mytemplate">
    <label data-bind="attr: {for: id}>Label for input</label>
    <input type="text" data-bind="attr: {id: id}, value: inputValue"/>
</script>

Это работает, но не очень элегантно, поскольку в моих моделях должен быть искусственный атрибут id, который больше ни для чего не используется. Интересно, есть ли здесь лучшее решение?

Ответы на вопрос(3)

Ваш ответ на вопрос