Estou construindo uma IU de permissões, tenho uma lista de permissões com uma lista de seleção ao lado de cada permissão. As permissões são representadas por uma matriz observável de objetos que estão vinculados a uma lista de seleção:
<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>
Agora, o problema é o seguinte: o evento de mudança é gerado quando a IU está sendo preenchida pela primeira vez. Eu chamo minha função ajax, obtenho a lista de permissões e, em seguida, o evento é gerado para cada um dos itens de permissão. Este não é realmente o comportamento que desejo. Quero que seja gerado apenas quando um usuário realmente escolher um novo valor para a permissão na lista de seleção , como posso fazer isso?
select
elemento. No entanto, mesmo quando o valor inicial do select correspondeu a uma das opções, ele ainda acionou ochange
evento. Quando implementei esseif
bloco simples no manipulador, tudo funcionou conforme o esperado. Tente este método primeiro. Obrigado, @Sarath!