2013-03-22 3 views
7

У меня есть якорь тег с иконкой внутри него, как это:Нокаут связывания на якорной теге

<a> 
    <i class="icon-flip-2"></i> 
    hello 
</a> 

Я хотел бы заменить текст приветствия с переплетены элементом. Что-то вроде:

<a data-bind="text: myValue"> 
    <i class="icon-flip-2"></i> 
    hello 
</a> 

Проблема в том, что я потерял элемент < я класс = «значок-флип-2»>

Я хочу, чтобы сохранить его и быть в состоянии связать что-то на якорь тег.

Спасибо.

Любая идея?

ответ

11

Используйте виртуальный элемент

<a> 
    <i class="icon-flip-2"></i> 
    <!-- ko text: myValue --><!-- /ko --> 
</a> 

или <span>

<a> 
    <i class="icon-flip-2"></i> 
    <span data-bind="text: myValue, if: myValue().length > 0"></span> 
</a> 
+0

Виртуальный элемент, похоже, соответствует его потребностям. Это дает ему возможность связывать текст без использования нового диапазона. – sngregory

+0

@sngregory Пробел с привязкой 'if:' - это то, что я буду использовать, но это только личные предпочтения. – Tomalak

+0

Я согласен с вами, но он, похоже, идет вразрез с тем, что он пытается выполнить, поскольку для этого потребуется изменение CSS. – sngregory

0

Поместите текст внутри проема внутри тега и привяжите его свойство текста.

0

Я был бы соблазн поместить текст в пролете:

<a> 
    <i class="icon-flip-2"></i> 
    <span data-bind="text: myValue"></span> 
</a> 
+0

@Golo: Я предпочитаю избегать используя дополнительный интервал, потому что мне пришлось бы настроить мой css. – Bronzato

+0

Если честно, если у вас будет один элемент html внутри другого, я предпочел бы иметь все внутри элемента. –

Смежные вопросы