knockout.js
Wiązania - Tekst i wygląd
Szukaj…
Tekst
Wiązania text
można używać z dowolnym elementem, aby zaktualizować jego tekst wewnętrzny.
<p>
<span data-bind="text: greeting"></span>,
<span data-bind="text: subject"></span>.
</p>
ko.applyBindings({
greeting: ko.observable("Hello"),
subject: ko.observable("world")
});
Wiązania text
można także używać z elementami wirtualnymi.
<p>
<!--ko text: greeting--><!--/ko-->,
<!--ko text: subject--><!--/ko-->.
</p>
CSS
Wiązanie to zastosuje dostarczoną klasę CSS do elementu. Klasy statyczne są stosowane, gdy podane warunki są luźno ocenione jako prawdziwe. Klasy dynamiczne wykorzystują wartość obserwowalną lub obliczoną.
page.html
<p data-bind="css: { danger: isInDanger }">Checks external expression</p>
<p data-bind="css: { danger: dangerLevel() > 10 }">Expression can be inline</p>
<p data-bind="css: { danger: isInDanger, glow: shouldGlow }">Multiple classes</p>
<p data-bind="css: dynamicObservable">Dynamic CSS class from observable</p>
<p data-bind="css: dynamicComputed">Dynamic CSS class from computed</p>
page.js
ko.applyBindings({
isInDanger: ko.observable(true),
dangerLevel: ko.observable(5),
isHot: ko.observable(true),
shouldGlow: ko.observable(true),
dynamicObservable: ko.observable('highlighted'),
dynamicComputed: ko.computed(function() {
var customClass = "";
if(dangerLevel() >= 15 ) {
customClass += " danger";
}
if(dangerLevel() >= 10) {
customClass += " glow";
}
if(dangerLevel() >= 5) {
customClass += " highlighted";
}
return customClass;
});
});
page.css
.danger { background: red; }
.glow { box-shadow: 5px 5px 5px gold; }
.highlighted { color: purple; }
Zobacz także: oficjalna dokumentacja .
Widoczny
Może być używany do pokazywania / ukrywania elementów DOM. Podobne do używania if
, ale z tym, że visible
nadal będzie budować element i ustawiać display:none
.
<div data-bind="visible: shouldShowMessage">
You will see this message only when "shouldShowMessage" holds a true value.
</div>
<script type="text/javascript">
var viewModel = {
shouldShowMessage: ko.observable(true);
};
</script>
Attr
Użyj wiązania attr
aby zastosować dodatkowe atrybuty do elementu. Najczęściej używany do ustawiania href, src lub dowolnych atrybutów danych.
<img data-bind="attr: { src: url, title: title }"/>
var viewModel = {
url: ko.observable("images/example.png"),
title: "example title"
};
HTML
To powiązanie aktualizuje innerHTML elementu za pomocą jQuery.html()
, jeśli odwołanie do jQuery, w przeciwnym razie własna logika analizy KO. Może być przydatny, jeśli pobierasz HTML z API, kanału RSS itp. Pamiętaj, aby używać tego tagu z danymi HTML wprowadzanymi przez użytkownika.
page.html
<p>
<span data-bind="html: demoLink"></span>
</p>
page.js
ko.applyBindings({
demoLink: ko.observable("<a href='#'>Make a link</a>")
});