我觉得问题很简单。
我得到了一个Kendo Multiselect,它被绑定到一个对象数组(contentlang)。
从后端我得到一个int数组(AvailableLanguages
)。
现在我的问题是如何正确地绑定值。
我需要计算机之类的东西吗?
提前感谢!
<select data-bind="kendoMultiSelect: {
data: contentLangs ,
dataTextField: 'Name',
dataValueField: 'ID',
value: AvailableLanguages,
index: 0,
height: '500'
}"></select>
AvailableLanguages: [0,1]
var contentLangs = [
{ Name: "Deutsch", ID: "DE", Cls: "language-flag flag-de" },
{ Name: "Englisch", ID: "EN", Cls: "language-flag flag-en" },
{ Name: "Italienisch", ID: "IT", Cls: "language-flag flag-it" }
]
所以你需要像这样创建你的视图模型:
var viewModel = {
availableLanguages: ko.observable([0,1]),
contentLangs: [
{ Name: "Deutsch", ID: "DE", Cls: "language-flag flag-de" },
{ Name: "Englisch", ID: "EN", Cls: "language-flag flag-en" },
{ Name: "Italienisch", ID: "IT", Cls: "language-flag flag-it" }
]
};
contentLangs
不需要是observableArray,除非它发生了变化。availableLanguages
需要是一个可观察对象,因为我们需要在选择改变时更新viewModel。
然后你可以使用:
将viewModel绑定到视图ko.applyBindings(viewModel);
视图是:
<select data-bind="kendoMultiSelect: {
data: contentLangs,
dataTextField: 'Name',
dataValueField: 'ID',
value: availableLanguages,
index: 0,
height: '500'
}"></select>