【问题标题】:Knockoutjs id reference to objectKnockoutjs id 对对象的引用
【发布时间】:2015-07-17 13:01:40
【问题描述】:

我认为简单的问题。

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

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

【问题讨论】:

  • availableLanguages 是什么意思? contentLangs 应该在下拉列表中吗?
  • 对不起@WayneEllery,contentLangs 是数据/数据源

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


【解决方案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>

【讨论】:

  • 好的,谢谢,我想我有点不清楚。但是你的回答给了我正确的冲动。我向 contentLangs 添加了一个真实的 ID - 现在它可以工作了。 :-)
猜你喜欢
  • 2014-08-26
  • 1970-01-01
  • 2016-09-10
  • 2011-07-14
  • 2016-05-22
  • 1970-01-01
  • 2015-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多