KnockoutJS - CSS Binding
Essa associação permite definir classes CSS para os elementos HTML DOM com base em certas condições. Isso é útil caso você precise destacar alguns dados, dependendo de uma situação.
Sintaxe
css: <binding-object>
Parâmetros
No caso de vinculação CSS estática, o parâmetro pode estar na forma de Objeto JavaScript, consistindo em propriedade e seu valor.
Property aqui se refere à classe CSS a ser aplicada e value pode ser booleano verdadeiro ou falso, ou expressão ou função JavaScript.
Classes também pode ser aplicado dinamicamente usando funções observáveis computadas.
Várias classes CSS também podem ser aplicadas de uma vez. A seguir está um exemplo de como 2 classes são adicionadas à ligação.
<div data-bind = "css: {
outOfStock : productStock() === 0,
discountAvailable: discount
}">
Os nomes das classes também podem ser especificados entre aspas simples, como 'desconto disponível'.
0 e nulo são tratados como valor falso. Números e outros objetos são tratados como valor verdadeiro.
Se a propriedade ViewModel for observável, as classes CSS serão decididas de acordo com o novo valor de parâmetro atualizado. Se não for um valor observável, as classes são determinadas apenas uma vez, pela primeira vez.
Exemplo
Vamos dar uma olhada no exemplo a seguir, que demonstra o uso da vinculação CSS.
<!DOCTYPE html>
<head>
<title>KnockoutJS CSS binding</title>
<script src = "https://ajax.aspnetcdn.com/ajax/knockout/knockout-3.1.0.js"
type = "text/javascript"></script>
<style>
.outOfStock {
color: red;
font-weight: bold;
}
</style>
</head>
<body>
<div data-bind = "css: { outOfStock : productStock() === 0 }">
Product Details.
</div>
<script>
function AppViewModel() {
this.productStock = ko.observable(0);
}
var vm = new AppViewModel();
ko.applyBindings(vm);
</script>
</body>
</html>
Resultado
Vamos realizar as seguintes etapas para ver como funciona o código acima -
Salve o código acima em css-bind.htm Arquivo.
Abra este arquivo HTML em um navegador.
As informações do produto são mostradas de forma normal quando a propriedade do estoque do produto está acima de 0. As informações do produto ficam vermelhas e em negrito. assim que o productStock se tornar 0.