I ran into a case where selecting of an option that is data bound to my javascript data object resulted into a different option being shown as selected.
Example data object:
var data = {
"person": { "no" : 2 },
"options": [
{"no":0,"t":"null"},
{"no":1,"t":"a"},
{"no":2,"t":"b"},
{"no":3,"t":"c"}
]
};
Corresponding Select with the data binding setup:
<script id="SelectTemplate" type="text/x-jsrender">
<select id="MySelect" data-link="person.no">
<option value=""></option>
{^{for options}}
<option data-link="{:t} value{:no} selected{:no === ~root.person.no}"></option>
{{/for}}
</select>
</script>
I have created a JsFiddle here to play with my setup. Can anyone please explain to me why this is happening? Or what I am doing wrong?
Note: I would like to share my current workaround just in case someone else happens to run into this problem. I am listening to property change event on my select data bound object (i.e. person). Here is what it looks like:
$(data.person).on('propertyChange', function (event, eventArgs) {
$("#MySelect").val(eventArgs.value);
});