Estoy creando una interfaz de usuario de permisos, tengo una lista de permisos con una lista de selección junto a cada permiso. Los permisos están representados por una matriz observable de objetos que están vinculados a una lista de selección:
<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>
Ahora el problema es el siguiente: el evento de cambio se genera cuando la interfaz de usuario se completa por primera vez. Llamo a mi función ajax, obtengo la lista de permisos y luego se genera el evento para cada uno de los elementos de permiso. Este no es realmente el comportamiento que quiero. Quiero que se genere solo cuando un usuario realmente selecciona un nuevo valor para el permiso en la lista de selección , ¿cómo puedo hacerlo?
select
elemento. Sin embargo, incluso cuando el valor inicial de la selección coincidía con una de las opciones, aún desencadenaba elchange
evento. Cuando implementé esteif
bloque simple en el controlador, todo funcionó como se esperaba. Pruebe este método primero. ¡Gracias, @Sarath!