ฉันกำลังสร้าง UI การอนุญาตฉันมีรายการสิทธิ์พร้อมรายการเลือกถัดจากสิทธิ์แต่ละรายการ สิทธิ์จะแสดงโดยอาร์เรย์ของวัตถุที่สังเกตได้ซึ่งเชื่อมโยงกับรายการที่เลือก:
<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>
ตอนนี้ปัญหาคือ: เหตุการณ์การเปลี่ยนแปลงจะเพิ่มขึ้นเมื่อ UI เพิ่งเติมข้อมูลเป็นครั้งแรก ฉันเรียกใช้ฟังก์ชัน ajax ของฉันรับรายการสิทธิ์จากนั้นเหตุการณ์จะถูกยกขึ้นสำหรับแต่ละรายการสิทธิ์ นี่ไม่ใช่พฤติกรรมที่ฉันต้องการจริงๆ ฉันต้องการให้เพิ่มขึ้นก็ต่อเมื่อผู้ใช้เลือกค่าใหม่สำหรับสิทธิ์ในรายการเลือกเท่านั้นฉันจะทำอย่างไร
select
องค์ประกอบ อย่างไรก็ตามแม้ว่าค่าเริ่มต้นของการเลือกจะตรงกับตัวเลือกใดตัวเลือกหนึ่ง แต่ก็ยังทริกเกอร์change
เหตุการณ์ เมื่อฉันใช้if
บล็อกง่ายๆนี้ในตัวจัดการทุกอย่างทำงานได้ตามที่คาดไว้ ลองใช้วิธีนี้ก่อน ขอบคุณ @Sarath!