KnockoutJS - selectedOptions Binding

Essa ligação é usada para trabalhar com elementos que estão selecionados atualmente no controle de formulário de seleção de lista múltipla. Essa associação pode ser usada com associação de opção e controle de formulário <select> apenas.

Quando o usuário seleciona ou desmarca um item na lista de seleção múltipla, isso adiciona ou remove o valor correspondente a uma matriz no modelo de visualização. Se for uma matriz Observable, os itens selecionados ou desmarcados da IU também são atualizados na matriz em ViewModel, tornando-o um método de ligação bidirecional.

Sintaxe

selectedOptions: <binding-array>

Parâmetros

  • O parâmetro aqui será uma matriz (também pode ser um Observável). Os itens ativos do elemento selecionado são armazenados nesta matriz. Os itens anteriores serão substituídos.

  • Se o parâmetro for Matriz observável, os itens selecionados serão atualizados conforme e quando o observável subjacente for alterado. O elemento é processado apenas uma vez, se nenhuma matriz Observable for usada.

Exemplo

Vamos dar uma olhada no exemplo a seguir, que demonstra o uso de selectedOptions Binding.

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

   <body>
      <p>Tutorials Library:<br><br>
      <select size = 10 multiple = 'true' data-bind = "
         options: availableTutorials,
         selectedOptions: selectedTutorials
      "></select></p>
         
      <p>(Press control and select for multiple options.)</p>
      <p>You have chosen below Tutorials:</p>
      <ul data-bind = "foreach: selectedTutorials">
         <li>
            <span data-bind = "text: $data"> </span>
         </li>
      </ul>

      <script type = "text/javascript">
         function ViewModel() {
            self = this;
            self.availableTutorials = ko.observableArray ([
               'Academic','Big Data','Databases',
               'Java Technologies','Mainframe',
               'Management','Microsoft Technologies',
               'Mobile Development','Programming','Software Quality'
            ]);

            self.selectedTutorials = ko.observableArray();
         };
         
         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 selectedoptions-bind.htm Arquivo.

  • Abra este arquivo HTML em um navegador.

  • selectedTutorials é um array para armazenar as opções selecionadas.