我想知道,为什么非原始值在Kendo-Knockout绑定中不起作用。
我有2个DropDownLists:
<!-- This one works fine -->
<input data-bind="kendoDropDownList: {
data: Names,
value: SelectectedValue1,
dataTextField: 'Name',
dataValueField: 'ID',
valuePrimitive: true
}" />
<!-- This one doesn't work -->
<input data-bind="kendoDropDownList: {
data: Names,
value: SelectectedValue2,
dataTextField: 'Name',
dataValueField: 'ID',
valuePrimitive: false
}" />
简单的虚拟机:
var datajs =
[{'ID':1,'Name':'Name 1'},
{'ID':2,'Name':'Name 2'},
{'ID':3,'Name':'Name 3'},
{'ID':4,'Name':'Name 4'},
{'ID':5,'Name':'Name 5'}
];
var ViewModel = function()
{
this.Names = ko.observableArray(datajs);
this.SelectectedValue1= ko.observable(null);
this.SelectectedValue2= ko.observable(null);
};
ko.applyBindings(new ViewModel());
第一个下拉列表使用原始值作为值,第二个下拉列表应该绑定整个对象。但它不起作用。两个选定值都是具有ID的基元。为什么呢?
小提琴:http://jsfiddle.net/RaptorCZ/4x710zbn/
我发现的唯一方法是创建计算器以根据所选ID从集合中获取对象。