Json 剔除跨类数据绑定

Json 剔除跨类数据绑定,json,knockout.js,knockout-mapping-plugin,2-way-object-databinding,Json,Knockout.js,Knockout Mapping Plugin,2 Way Object Databinding,目标:让用户能够调整映射结果 我遇到了一个问题,需要实际更改数据绑定元素所使用的实例。免责声明:我的json数据结构可能已关闭,我愿意接受可能的修改。我正在编写一个表格标题映射应用程序,以便用户可以验证服务器映射的标题是否正确。如果出现问题,用户将能够映射标题。当选择菜单被更改时,我无法弄清楚如何实际更新绑定到结果的数据。感觉应该非常简单。我发现自己基本上已经完成了一个淘汰赛应用程序,而不是最后一步 标记片段: <div id="wrapper" data-bind="foreach: h

目标:让用户能够调整映射结果

我遇到了一个问题,需要实际更改数据绑定元素所使用的实例。免责声明:我的json数据结构可能已关闭,我愿意接受可能的修改。我正在编写一个表格标题映射应用程序,以便用户可以验证服务器映射的标题是否正确。如果出现问题,用户将能够映射标题。当选择菜单被更改时,我无法弄清楚如何实际更新绑定到结果的数据。感觉应该非常简单。我发现自己基本上已经完成了一个淘汰赛应用程序,而不是最后一步

标记片段:

<div id="wrapper" data-bind="foreach: headings">
    <h1>Bind from this</h1>
    <select data-bind="value: selectMenuIdVal, event: { change: updateListing }">
    <option> </option>
        <!-- ko foreach: $root.headings -->
        <option data-bind="value: $data.CC_FIELD_ID, visible: $data.VENDOR_FIELD_NAME(), text: $data.VENDOR_FIELD_NAME"></option>
        <!-- /ko -->
    </select>
    <h1>To this</h1>
    <ul data-bind="foreach: listingFields">
        <li data-bind="text: $data.VALUE"></li>
    </ul>
</div>

这是我的提琴:

我真的不确定你是不是听错了

请让我知道这是否是您正在寻找的:

this.updateListing = function (ko_evt, js_evt) {
    console.log("fired");
    //Do something freaking awesome!!!!!!!
    if (vm.dataRepo) {
        for (var i = 0; i < vm.dataRepo.HEADINGS.length; i++) {
            if (vm.dataRepo.HEADINGS[i].CC_FIELD_ID == heading.selectMenuIdVal()) {


                var listingFields = [];

                for (var j = 0; j < vm.dataRepo.LISTINGS.length; j++) {
                    var listing = vm.dataRepo.LISTINGS[j];
                    var field = listing[i];

                    if (field) {
                        listingFields.push(field);
                    }
                }
                heading.listingFields(listingFields);

                //            heading.listingFields = listingFields;
            }
        }
    }
}
this.updateList=函数(ko_evt,js_evt){
控制台日志(“已启动”);
//做一些非常棒的事情!!!!!!!
if(vm.dataRepo){
对于(var i=0;i


希望有帮助。

谢谢你,达米恩。这非常有帮助。
this.updateListing = function (ko_evt, js_evt) {
    console.log("fired");
    //Do something freaking awesome!!!!!!!
    if (vm.dataRepo) {
        for (var i = 0; i < vm.dataRepo.HEADINGS.length; i++) {
            if (vm.dataRepo.HEADINGS[i].CC_FIELD_ID == heading.selectMenuIdVal()) {


                var listingFields = [];

                for (var j = 0; j < vm.dataRepo.LISTINGS.length; j++) {
                    var listing = vm.dataRepo.LISTINGS[j];
                    var field = listing[i];

                    if (field) {
                        listingFields.push(field);
                    }
                }
                heading.listingFields(listingFields);

                //            heading.listingFields = listingFields;
            }
        }
    }
}