KnockoutJS - Desativar vinculação

Essa vinculação é a negação de ativar a vinculação. Essa ligação desativa o elemento DOM associado quando o parâmetro é avaliado como verdadeiro.

Sintaxe

disable: <binding-value>

Parâmetros

  • O parâmetro consiste em um valor do tipo booleano, que decide se o elemento deve ser desabilitado ou não. Se o parâmetro for verdadeiro ou um valor semelhante a verdadeiro, o elemento será desabilitado.

  • Os valores não booleanos são considerados valores vagamente booleanos. O que significa que 0 e nulo são considerados valores semelhantes a falsos e objetos inteiros e não nulos são considerados valores semelhantes a verdadeiros.

  • Se a condição no parâmetro contém um valor observável, então a condição é reavaliada sempre que o valor observável muda. Da mesma forma, a marcação relacionada será desabilitada com base no resultado da condição.

Exemplo

Vamos dar uma olhada no exemplo a seguir, que demonstra o uso de desativar vinculação.

<!DOCTYPE html>
   <head>
      <title>KnockoutJS Disable Binding</title>
      <script src = "https://ajax.aspnetcdn.com/ajax/knockout/knockout-3.3.0.js"
         type = "text/javascript"></script>
   </head>

   <body>
      <p> Enter your feedback here:<br><br>
         <textarea rows = 5 data-bind = "value: hasFeedback, 
            valueUpdate: 'afterkeydown'" ></textarea>
      </p>
      
      <p><button data-bind = "disable: !(hasFeedback())">Save Feedback</button></p>

      <script type = "text/javascript">
         function ViewModel () {
            hasFeedback = ko.observable('');
         };

         var vm = new ViewModel();
         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 disable-bind.htm Arquivo.

  • Abra este arquivo HTML em um navegador.

  • O botão salvar é desabilitado quando o usuário não insere nenhum feedback.

Você também pode usar uma expressão aleatória para decidir se o elemento deve ser desativado ou não.