Привязка текста Knockout.js в дочернем узле

Я новичок в Knockout.js и не нашел ответа на этот вопрос.

Я пытаюсь создать что-то вроде

<td>DEMO<span>DEMO2</span></td>

Но я не уверен, как это сделать с Knockout.js. Я пробовал следующее, но это не сработало:

<td data-bind="text: type"><span data-bind="text: type2"></span></td>     

Кажется, что text:type переопределяет span и даже не появляется.


person Alvaro    schedule 24.06.2015    source источник


Ответы (1)


Да, вы не можете иметь привязку text к td, потому что она полностью переопределяет содержимое вашего td.

Из документации:

Knockout устанавливает содержимое элемента в текстовый узел со значением вашего параметра. Любой предыдущий контент будет перезаписан.

Решения:

Используйте дополнительный span:

<td><span data-bind="text: type"></span><span data-bind="text: type2"></span></td> 

Используйте бесконтейнерный синтаксис KO:

<td><!-- ko text: type --><!-- /ko --><span data-bind="text: type2"></span></td> 

Демонстрация JSFiddle.

person nemesv    schedule 24.06.2015
comment
Спасибо! Безконтейнерное решение кажется подходящим вариантом! - person Alvaro; 24.06.2015