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
Vous devez vous connecter pour publier un commentaire.
L'objet d'une liaison s'attend à être passé d'une structure de pouvoir lire/écrire contre. Cela pourrait être une variable observable, ou une écriture dependentObservable.
Lorsqu'il est passé d'un tableau ou d'observableArray, l'objet d'une liaison ne sais comment ajouter et supprimer des valeurs simples de la matrice.
Voici un échantillon, qui comprend également un calculées observables qui contient le tableau des valeurs délimitées par des virgules. http://jsfiddle.net/rniemeyer/Jm2Mh/
HTML:
Pourquoi n'est-il pas Mutuellement exclusives, des cases à cocher exemple en Ligne quelque part
Depuis ce lien est arrivé en premier alors que j'étais à la recherche d'mutuellement exclusives, des cases à cocher, je vais partager ma réponse ici. J'ai été frapper ma tête contre le mur avec toutes mes tentatives. Par ailleurs, quand vous gérer l'événement de clic dans une liaison en ligne knockoutjs il semble déconnecter les liaisons(peut-être seulement parce que j'ai essayé d'appeler mon resetIllnesses de fonction tel que défini ci-dessous) même si vous le vrai retour de la fonction. Peut-être il ya une meilleure façon, mais jusqu'alors, suivez mon plomb.
Ici est le type que j'avais besoin de lier.
Le tableau pour la liaison.
La réinitialisation de la maladie de fonction pour effacer tous les.
Le balisage
Cela ne fonctionne tout simplement pas
Si vous avez été aux prises avec de l'appel du resetIllness fonction comme je l'ai ci-dessous, vous vous sentirez ma douleur.
vous avons fait part de ma douleur. Eh bien, ça marche!!! lorsque vous appelez à partir de l'exemple suivant.
Notez qu'il y a une classe que j'ai ajouté ci-dessus afin que je puisse ajouter la fonction de clic.
Le script qui effectue tous vos problèmes disparaissent.
Envoyer des informations au serveur
Aussi, dans mon cas, j'ai dû envoyer les informations vers le serveur autrement que le format html par défaut j'ai donc modifié les entrées un peu.