Travailler avec une liste de cases à cocher dans knockoutjs

Je vais essayer d'obtenir ma tête autour de Knockout.js et je suis tout à fait bloqué quand il s'agit de cases à cocher.

Côté serveur je suis le remplissage d'un ensemble de cases à cocher avec leurs valeurs correspondantes. Maintenant, lorsque l'un des décoché les cases sont cochées, j'ai besoin de stocker une valeur dans une virgule séparées de la chaîne. Quand ils sont pas cochée, la valeur doit être supprimé de la chaîne.

Avoir quelqu'un a une astuce sur la façon de réaliser cela avec knockoutjs?

J'ai le code suivant:

ViewModel:

$().ready(function() {
   function classPreValue(preValue)
   {
       return {
            preValue : ko.observable(preValue)
       } 
   }

   var editOfferViewModel = {
   maxNumOfVisitors : ko.observable(""),
   goals : ko.observable(""),
   description : ko.observable(""),
   contact : ko.observable(""),
   comments : ko.observable(""),
   classPreValues : ko.observableArray([]),
   addPreValue : function(element) {
      alert($(element).val());
      this.classPreValues.push(new classPreValue(element.val()));
   }
 };

 ko.applyBindings(editOfferViewModel);
});

Et mes cases sont remplies avec une boucle foreach:

<input data-bind="checked: function() { editOfferViewModel.addPreValue(this) }"
       type="checkbox" checked="yes" value='@s'>
    @s
</input>

J'ai essayer de passer à la case de l'élément en tant que paramètre à mon addPreValue() fonction, mais rien ne se passe quand je cochez la case?

Toute aide/conseils sur ce qui est grandement apprécié!

source d'informationauteur bomortensen