Knockoutjs id引用对象

时间:2015-07-17 13:01:41

标签: knockout.js kendo-ui knockout-kendo

简单的问题我想。

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

从后端我得到一组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" }
]

1 个答案:

答案 0 :(得分:1)

所以你需要像这样创建你的视图模型:

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>