Je construis une interface utilisateur d'autorisations, j'ai une liste d'autorisations avec une liste de sélection à côté de chaque autorisation. Les permissions sont représentées par un tableau d'objets observables qui sont liés à une liste de sélection:
<div data-bind="foreach: permissions">
<div class="permission_row">
<span data-bind="text: name"></span>
<select data-bind="value: level, event:{ change: $parent.permissionChanged}">
<option value="0"></option>
<option value="1">R</option>
<option value="2">RW</option>
</select>
</div>
</div>
Maintenant, le problème est le suivant: l'événement de modification est déclenché lorsque l'interface utilisateur se remplit pour la première fois. J'appelle ma fonction ajax, j'obtiens la liste des autorisations, puis l'événement est déclenché pour chacun des éléments d'autorisation. Ce n'est vraiment pas le comportement que je souhaite. Je souhaite qu'il soit déclenché uniquement lorsqu'un utilisateur sélectionne vraiment une nouvelle valeur pour l'autorisation dans la liste de sélection , comment puis-je faire cela?
select
élément. Cependant, même lorsque la valeur initiale de la sélection correspond à l'une des options, cela déclenche toujours l'change
événement. Lorsque j'ai implémenté ce simpleif
bloc dans le gestionnaire, tout fonctionnait comme prévu. Essayez d'abord cette méthode. Merci, @Sarath!