2013-03-22 15 views
7

mam tagu zakotwiczenia z ikoną wewnątrz niego tak:Knockout wiążące znacznikiem zakotwiczenia

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

chciałbym zastąpić tekst powitania z krytym zbindowanych elementu. Coś jak:

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

Problem polega na tym, że straciłem element < i class = "icon-flip-2">

chcę zachować go i być w stanie związać coś na tagu zakotwiczenia.

Dzięki.

Każdy pomysł?

Odpowiedz

11

użyć elementu wirtualny

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

lub <span>

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

Wirtualny element wydaje się pasować do tego, czego potrzebuje. Daje mu możliwość wiązania tekstu bez użycia nowego zakresu. – sngregory

+0

@sngregory Span z opcją 'if:' jest tym, czego bym użył, ale to tylko osobiste preferencje. – Tomalak

+0

Zgadzam się z Tobą, ale wydaje się, że jest to sprzeczne z tym, co stara się osiągnąć, ponieważ wymagałoby to zmiany CSS. – sngregory

0

Umieść tekst wewnątrz przęsła wewnątrz znacznika i zamiast tego bind właściwości tekstowej span.

0

byłbym skłonny do umieścić swój tekst w rozpiętości:

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

@Golo: Wolę uniknąć używając dodatkowego zakresu, ponieważ musiałbym dostosować moje css. – Bronzato

+0

Szczerze mówiąc, jeśli chcesz mieć jeden element html w innym, wolę mieć wszystko wewnątrz elementu. –