KnockoutJS - com ligação

Essa associação é usada para ligar os elementos filhos de um objeto no contexto do objeto especificado. Essa ligação também pode ser aninhada com outros tipos de ligações, como if e foreach.

Syntax

with: <binding-object>

Parameters

  • Passe o objeto que você deseja usar como contexto para vincular elementos filhos como o parâmetro. Os elementos filho não serão mostrados se o objeto ou a expressão passada for avaliada como nula ou indefinida.

  • A expressão será reavaliada, se o parâmetro fornecido for observável. Da mesma forma, os elementos filhos serão reprocessados ​​com base no resultado do contexto atualizado.

Example

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

<!DOCTYPE html>
   <head>
      <title>KnockoutJS with binding</title>
      <script src = "https://ajax.aspnetcdn.com/ajax/knockout/knockout-3.1.0.js"
         type = "text/javascript"></script>
   </head>
   
   <body>
      <h1 data-bind = "text: siteName"> </h1>
      
      <table border = "1">
         <thead>
            <th>Course Name</th><th>Fees</th><th> Start Date</th>
         </thead>
         
         <tbody data-bind = "with: courses ">
            <tr>
               <td><span data-bind = "text: courseName"></span></td>
               <td><span data-bind = "text: Fees"></span></td>
               <td><span data-bind = "text: startDate"> </span></td>
            </tr>
         </tbody>
      </table>

      <script type="text/javascript">
         function AppViewModel() {
            self = this;
            self.siteName = ko.observable( 'TutorialsPoint');
            self.courses = ko.observable ({
               courseName:  'Microsoft .Net', 
               Fees: 20000, startDate: '20-Mar-2016'
            });
         };
         
         var vm = new AppViewModel();
         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 with-bind.htm Arquivo.

  • Abra este arquivo HTML em um navegador.

Observações

Sem contêiner com

Pode haver uma situação em que não seja possível colocar a vinculação de dados dentro de um elemento DOM. A ligação essencial ainda pode ser realizada com a ajuda decontainer-less sintaxe baseada nas tags de comentário, conforme mostrado no código a seguir.

<ul>
   <li>Course Info</li>
   <!-- ko with: currentClasses -->
      ...
   <!-- /ko -->
   <!-- ko with: plannedClasses -->
      ...
   <!-- /ko -->
</ul>

O <! - ko -> e <! - / ko -> funcionam como marcadores de início e fim, tornando-se uma sintaxe virtual e vinculando os dados como se fossem um contêiner real.