Knockoutjs id 引用对象

Knockoutjs id reference to object

我觉得很简单的问题。

我有一个 Kendo 绑定到对象数组 (contentLangs) 的多选。

从后端我得到一个整数数组 (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>