Json 剔除跨类数据绑定
目标:让用户能够调整映射结果 我遇到了一个问题,需要实际更改数据绑定元素所使用的实例。免责声明:我的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
<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;
}
}
}
}