我有一个项目,我在MVVM范例中使用Kendo DropDownList。下拉列表从viewmodel中的JavaScript数组中获取其数据,并将其值绑定到同一viewmodel中的属性。
问题是下拉列表始终保留在第一项上。我可以选择“非活动”(第二项)并将viewModel.data.IsActive更新为“true”,但第一个“活动”项目仍保留在下拉列表中。
如果将初始viewModel.data.IsActive更改为false,则在加载时,在下拉列表中选择第二个“非活动”项。但是,一旦我将其改为“活跃”,它就会停留在那里,我无法回到“无效”
这段代码有什么问题?我错过了一些简单的东西吗?
谢谢, 罗德早期
viewmodel:
var viewModel = {};
viewModel.data = {};
viewModel.data.IsActive = true;
viewModel.lookupData = {};
viewModel.lookupData.status = [{
value: true,
text: "Active"
}, {
value: false,
text: "Inactive"
}];
html:
<div class="container">
<div style="margin: 10px 0 20px 20px">
<span style="display:inline">Selected data</span>
<span data-bind="text: data.IsActive">none provided</span>
</div>
<select id="theDropdown" data-role="dropdownlist" data-bind="source: lookupData.status, value: data.IsActive" data-text-field="text" data-value-field="value" />
</div>
和绑定:
kendo.bind($(".container"), kendo.observable(viewModel));
这都是在jsfiddle http://jsfiddle.net/rodearly/RTD4m/3/
中实现的谢谢! 杆