KnockoutJS - Attr Binding

Esta ligação permite que você atribua elementos HTML dinamicamente attributeusando a propriedade ViewModel. Por exemplo, você pode definir o atributo src para uma imagem,title atributo para a página HTML, ou um href para um link na tag com base em valores em ViewModel.

Sintaxe

attr: <binding-object>

Parâmetro

  • O objeto JavaScript deve ser passado como um parâmetro no qual o nome da propriedade se refere ao nome do atributo e os valores se referem aos valores desejados a serem passados ​​ao elemento DOM.

  • Vários atributos também podem ser atribuídos de uma vez. Suponha que você queira atribuir um título e um valor a href, então a vinculação terá a seguinte aparência -

<a data-bind = "attr: { href: courseUrl, title: courseTitle}">

courseUrl e courseTitle variáveis ​​terão os valores desejados em ViewModel.

  • Se a propriedade ViewModel for um valor observável, o atributo é atribuído dependendo do novo valor de parâmetro atualizado. Se não for um valor observável, o atributo será atribuído apenas uma vez pela primeira vez.

Exemplo

Vamos dar uma olhada no exemplo a seguir, que demonstra o uso da ligação Attr.

<!DOCTYPE html>
   <head>
      <title>KnockoutJS attribute binding</title>
      <script src = "https://ajax.aspnetcdn.com/ajax/knockout/knockout-3.1.0.js" 
         type = "text/javascript"></script>
   </head>
   
   <body>
      <a data-bind = "attr: { href: courseUrl}">
         Click here for free online tutorials and courses.
      </a>

      <script type = "text/javascript">
         function AppViewModel() {
            this.courseUrl = ("http://tutorialspoint.com/");
         };
         
         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 attr-bind.htm Arquivo.

  • Abra este arquivo HTML em um navegador.

  • O courseUrl atribuirá o valor ao atributo href no elemento HTML DOM.