javascript - 嵌套复杂对象的 knockout 映射

标签 javascript knockout.js

我有一个带有子对象的 View 模型。如何定义子对象属性的映射?

public class ViewModel
{
    public ManageComparatorSelectionsViewModel ManageComparatorSelectionsViewModel { get; set; }
    public ManageComparatorItemViewModel CurrentComparatorItem { get; set; }
}


public class ManageComparatorSelectionsViewModel
{
    public IList<Edition> Editions { get; set; }
    public IList<Year> Years { get; set; }
}

public class ManageComparatorItemViewModel
{
    public Edition ChosenEdition { get; set; }
    public Year ChosenYear { get; set; }
}

我正在执行以下操作来初始化 knockout

    var mapping = {
        'ManageComparatorSelectionsViewModel.Editions': {
            key: function (data) {
                return ko.utils.unwrapObservable(data.Id);
            }
        },
        'ManageComparatorSelectionsViewModel.Years': {
            key: function (data) {
                return ko.utils.unwrapObservable(data.Id);
            }
        }
    };
    var viewModel = ko.mapping.fromJS(viewModelData, mapping);

    ko.applyBindings(viewModel);

最佳答案

你有什么理由需要将它们拆开吗?您总是可以通过获取 property() 或通过执行您正在查看的 ko.toJS() 项目来获取这些相同的对象。

编辑:

对于下拉列表:

<select data-bind=" template : { 'name' : 'templateID', foreach : optionlist } "></select>

使用如下所示的模板:

<script type="html/text" id="templateID">
      <option value="${ key }">${ text }</option>
</script>

关于javascript - 嵌套复杂对象的 knockout 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6699521/

相关文章:

javascript - 粘性侧边栏和固定列

javascript - rails : end of file reached

javascript - 如何在 flot 中获取 x 轴标签?

javascript - 具有 knockout 绑定(bind)的空值的默认文本

jquery - KnockoutJS 绑定(bind)到可观察数组中的单个对象

knockout.js - 使用 knockout 根据下拉列表中选定的值隐藏/显示问题

javascript - native js defaultValue 和 jQuery prop(defaultValue) 有(应该有)区别吗?

页面重新加载时的Javascript倒计时问题

javascript - knockout 排序方法在 chrome 中不起作用

javascript - 初始化空表单中断页面; knockout