KnockoutJS - Vinculação de texto

A vinculação de texto faz com que o elemento DOM associado exiba o valor de texto do parâmetro. Isso é usado em elementos DOM de nível de texto, como<span> ou <em>. A vinculação de texto aceita qualquer tipo de dados e os analisa em String antes de renderizá-los.

Syntax

text: <binding-value>

Parameters

  • KO define o conteúdo do elemento para um nó de texto com o valor do seu parâmetro. Qualquer conteúdo anterior será sobrescrito.

  • Se o parâmetro for observável, o valor do elemento será atualizado sempre que a propriedade subjacente for alterada, caso contrário, será atribuído apenas pela primeira vez.

  • Se algo diferente de um Número ou String for passado, então KO o analisa em um formato String equivalente a yourParameter.toString ().

  • O valor do parâmetro também pode ser uma função JavaScript ou uma expressão JavaScript arbitrária que retorna um valor de texto.

Example

Vejamos o exemplo a seguir, que demonstra o uso de vinculação de texto.

<!DOCTYPE html>
   <head>
      <title>KnockoutJS text binding</title>
      <script src = "https://ajax.aspnetcdn.com/ajax/knockout/knockout-3.1.0.js"
         type = "text/javascript"></script>
   </head>
   
   <body>
      <p data-bind = "text: hiThere"></p>

      <script>
         function AppViewModel() {
            this.hiThere = ko.observable("Hi TutorialsPoint !!!");
         }
         
         var vm = new AppViewModel();
         ko.applyBindings(vm);
      </script>
      
   </body>
</html>

Output

Vamos realizar as etapas a seguir para ver como o código acima funciona -

  • Salve o código acima em text-bind.htm Arquivo.

  • Abra este arquivo HTML em um navegador.

Example

Vamos dar uma olhada em outro exemplo em que o texto é derivado usando Computed Observable.

<!DOCTYPE html>
   <head>
      <title>KnockoutJS text binding</title>
      <script src = "https://ajax.aspnetcdn.com/ajax/knockout/knockout-3.1.0.js" 
         type = "text/javascript"></script>
   </head>
   
   <body>
      <p>Your full Name is <span data-bind="text: fullName"></span></p>

      <script>
         function AppViewModel() {
            this.firstName= ko.observable("John");
            this.lastName= ko.observable("Smith");

            this.fullName = ko.computed( function() {
               return this.firstName()+" "+this.lastName();
            },this);
         }
         
         var vm = new AppViewModel();
         ko.applyBindings(vm);
      </script>
   
   </body>
</html>

Output

Vamos realizar as etapas a seguir para ver como o código acima funciona -

  • Salve o código acima em text-bind-fun.htm Arquivo.

  • Abra este arquivo HTML em um navegador.

Observações

Codificação HTML

A vinculação de texto escapa de entidades HTML, o que significa que é possível definir qualquer valor String sem injetá-lo. Por exemplo -

viewModel.message("<strong>Hi TutorialsPoint !!!</strong>");

O código acima apenas imprimirá <strong> Hi TutorialsPoint !!! </strong> na tela. Não deixará o texto em negrito.

Usando texto sem elemento de contêiner

Às vezes, não é possível usar o elemento HTML para definir o texto dentro de outro elemento. Em tais casos,container-less syntax pode ser usado, que consiste em tags de comentário mostradas a seguir -

o <!--ko--> e <!--/ko--> o comentário funciona como marcadores de início e fim, tornando-se uma sintaxe virtual e vincula os dados como se fossem um contêiner real.

Vejamos o exemplo a seguir.

<!DOCTYPE html>
   <head>
      <title>KnockoutJS container less text binding</title>
      <script src = "https://ajax.aspnetcdn.com/ajax/knockout/knockout-3.1.0.js"
         type = "text/javascript"></script>
   </head>
   
   <body>
      <p data-bind="text: hiThere"></p>
      <select data-bind="foreach: items">
         <option> <!--ko text: $data --><!--/ko--></option>
      </select>

      <script>
         function AppViewModel() {
            this.hiThere = ko.observable("Days of week !!!");
            this.items = (['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday',
               'Sunday']);
         }
         
         var vm = new AppViewModel();
         ko.applyBindings(vm);
      </script>
      
   </body>
</html>

Output

Vamos realizar as etapas a seguir para ver como o código acima funciona -

  • Salve o código acima em text-bind-containerless.htm Arquivo.

  • Abra este arquivo HTML em um navegador.

  • Observe que o contexto de ligação de dados $ é usado aqui para exibir o item atual da matriz.