KnockoutJS - vinculação textInput
Essa associação é usada para criar uma associação bidirecional entre a caixa de texto ou textarea e a propriedade ViewModel. A diferença entre isso e a associação de valor é que essa associação disponibiliza atualizações imediatas do HTML DOM para vários tipos de entrada.
Syntax
textInput: <binding-value>
Parameters
A propriedade de valor do elemento HTML DOM é definida como o valor do parâmetro. Os valores anteriores serão substituídos.
Se o parâmetro for algo diferente de um Número ou String (como um objeto ou uma matriz), o texto exibido é equivalente a um formato de String.
Se o parâmetro for um observável, o valor dos elementos será atualizado conforme e quando o observável subjacente for alterado. O elemento é processado apenas uma vez, se nenhum observável for usado.
Na maioria das situações, textInput é preferível à vinculação de valor devido à capacidade de textInput de fornecer atualizações ao vivo do DOM para cada tipo de entrada e a capacidade de lidar com o comportamento estranho dos navegadores.
Example
Vamos dar uma olhada no exemplo a seguir, que demonstra o uso da vinculação textInput.
<!DOCTYPE html>
<head>
<title>KnockoutJS textInput Binding </title>
<script src = "https://ajax.aspnetcdn.com/ajax/knockout/knockout-3.3.0.js"
type = "text/javascript"></script>
</head>
<body>
<p> Enter your reviews here: <br><br><textarea rows=5
data-bind = "textInput: someReview" ></textarea><br></p>
<p> You entered : <span data-bind = "text: someReview"></span></p>
<script type = "text/javascript">
function ViewModel() {
this.someReview = ko.observable('');
};
var vm = new ViewModel();
ko.applyBindings(vm);
</script>
</body>
</html>
Output
Vamos realizar as seguintes etapas para ver como funciona o código acima -
Salve o código acima em textinput-bind.htm Arquivo.
Abra este arquivo HTML em um navegador.
Os dados inseridos em textarea são atualizados no ViewModel imediatamente.
Observações
vinculação textInput vs Value
A vinculação textInput fornece atualizações ao vivo imediatas. As principais diferenças entre textInput e value Binding são -
Immediate updates- Por padrão, a associação de valor somente atualiza o modelo quando o usuário move o foco para fora da caixa de texto. A vinculação textInput atualiza o modelo instantaneamente após cada pressionamento de tecla ou em outro mecanismo de entrada de texto.
Browser event weirdness handling- Os navegadores são altamente imprevisíveis nos eventos que disparam em resposta ao mecanismo incomum de entrada de texto, como arrastar, cortar ou permitir a sugestão de preenchimento automático. A associação de valor não lida com todos os casos de entrada de texto em todos os navegadores.
A ligação textInput é especialmente projetada para lidar com uma ampla variedade de comportamentos estranhos de navegadores. Desta forma, ele fornece atualizações de modelo consistentes e instantâneas, mesmo no caso de mecanismos de entrada de texto incomuns.