Привязка if и ifnot

Последнее обновление: 17.05.2016

Привязка if позволяет скрыть, либо, наоборот, отобразить какой-то определенный элемент веб-страницы. Во многом она аналогична привязке visible:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Привязка массивов в KnockoutJS</title>
</head>
<body>
<div data-bind="if: display">
	if-binding
</div>
<button id="displayBtn">Скрыть/Отобразить</button>
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/knockout/knockout-3.4.0.js"></script>
<script>
var viewModel = {
    display: ko.observable(true)
};
ko.applyBindings(viewModel);

var displayBtn = document.getElementById("displayBtn");
displayBtn.addEventListener("click", function (e) {
	
    if(viewModel.display()==true)
		viewModel.display(false);
	else
		viewModel.display(true);
});
</script>
</body>
</html>

При опреелении привязки после ключевого слова if идет выражение. Если это выражение возвращает значение true, то элемент, к которому применяется привязка, отобразается. Иначе элемент скрывается.

data-bind="if: display"

Данный тип привязки также можно задать с помощью комментарных форм:

<!-- ko if: display -->
    <p>if-binding</p>
<!-- /ko -->

Комментарии <!-- ko --> и <!-- /ko --> выполняют роль соответственно начального и конечного маркера, которые определяют "виртуальный элемент". Knockout также обрабатывает этот виртуальный элемент и выполняет к нему привязку также, как и к реальному элементу веб-страницы.

Привязка ifnot работает аналогичным образом только в обратную сторону: если выражение привязки возвращает значение false, тогда привязанный элемент отображается. Например:

<div data-bind="ifnot: display">
	Привязка ifnot
</div>
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850