我遇到了这样一种情况,即选择一个数据绑定到我的 javascript 数据对象的选项会导致一个不同的选项显示为已选中。
示例数据对象:
var data = {
"person": { "no" : 2 },
"options": [
{"no":0,"t":"null"},
{"no":1,"t":"a"},
{"no":2,"t":"b"},
{"no":3,"t":"c"}
]
};
对应的 Select 与数据绑定设置:
<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>
我在这里创建了一个 JsFiddle来使用我的设置。谁能向我解释为什么会这样?或者我做错了什么?
注意: 我想分享我当前的解决方法,以防其他人碰巧遇到这个问题。我正在收听我选择的数据绑定对象(即人)上的属性更改事件。这是它的样子:
$(data.person).on('propertyChange', function (event, eventArgs) {
$("#MySelect").val(eventArgs.value);
});