Knockout.js 淘汰-尝试使用我视图中2个数据集的数据

Knockout.js 淘汰-尝试使用我视图中2个数据集的数据,knockout.js,Knockout.js,我正在努力解决这个问题。尝试在我的viewmodel中使用来自两个不同数据集的数据。我对淘汰赛还很陌生,所以我肯定我做错了什么。它抱怨不知道什么是批发,但这是从不同的列表/集合。所以我不知道如何把这两个都放进去。 以下是我的代码片段: var模型; var profitCode=功能(代码、描述、名称){ this.code=代码; this.desc=desc; this.name=名称; }; var codeModel=功能(代码、项目){ var self=这个; self.code=

我正在努力解决这个问题。尝试在我的viewmodel中使用来自两个不同数据集的数据。我对淘汰赛还很陌生,所以我肯定我做错了什么。它抱怨不知道什么是批发,但这是从不同的列表/集合。所以我不知道如何把这两个都放进去。 以下是我的代码片段:

var模型;
var profitCode=功能(代码、描述、名称){
this.code=代码;
this.desc=desc;
this.name=名称;
};
var codeModel=功能(代码、项目){
var self=这个;
self.code=ko.observearray(代码);
self.items=ko.observearray(项目);
};
$(文档).ready(函数(){
var codesJSON='[{“ExtensionData”:null,“brochureId”:0,“commission”:0,“itemNo”:“1000”,“profitCode”:0,“profitCodeName”:null,“批发”:0},{“ExtensionData”:null,“brochureId”:0,“commission”:0,“itemNo”:“1100”,“profitCode”:0,“profitCode”:null,“批发”:0},{“ExtensionData”:null,“brochureId”:0,“commission”:0,“itemNo”:“1120”,“profitCode”:0,“profitCode”:0,“profitCode”:0,“profitCode”:0,“profitCode”:0,“profitCode”:null,“批发”:0},{“ExtensionData”:null,“brochureId”:0,“commission”:0,“itemNo”:“1151”,“profitCode”:0,“profitCode”:null,“批发”:0},{“ExtensionData”:null,“brochureId”:0,“commission”:0,“itemNo”:“120”profitCode“:0,“profitCodeName”:null,“批发”:0},{“扩展数据”:null,“手册ID”:0,“佣金”:0,“项目号”:“125”,“profitCode“:0,“profitCodeName”:null,“批发”:0},{“扩展数据”:null,“手册ID”:0,“佣金”:0,“项目号”:“1500”,“profitCode”:0,“profitCodeName”:null,“批发”:0},{“扩展数据”:null,“手册ID”:0,“佣金”:0,“项目号”“:“1600”,“profitCode”:0,“profitCodeName”:null,“批发”:0},{“扩展数据”:null,“手册ID”:0,“佣金”:0,“项目编号”:“170”,“profitCode”:0,“profitCodeName”:null,“批发”:0}];
var itemsJSON='[{“ExtensionData”:{},“brockcode”:“1000”,“brockhureid”:1,“itemDesc”:“Bicycle”,“itemNo”:“1000”,“itemrorder”:1,“prizeNum”:0,“retail”:13.5},{“ExtensionData”:{},“brockcode”:“1100”,“brockhureid”:1,“itemDesc”:“前轮”,“itemNo”:“1100”,“itemrorder”:2,“prizeNum”:0,“retail”:35},“brockcode”:“1120”,“brockhureid”:1,“itemDesc”:“辐条”,“项目编号”:“1120”,“项目订单”:3,“prizeNum”:0,“零售”:12.5},{“扩展数据”:{},“手册代码”:“1150”,“手册编号”:1,“项目描述”:“前轮毂”,“项目编号”:“1150”,“项目订单”:4,“prizeNum”:0,“零售”:5},{“扩展数据”:{},“手册代码”:“1151”,“手册编号”:1,“车轴前轮”,“项目编号”:“1151”,“项目订单”:5,“手册编号”:0,“零售”:14},{”扩展数据:{},“手册代码”:“120”,“手册ID”:1,“项目描述”:“扬声器,黑色,120W”,“项目编号”:“120”,“项目顺序”:6,“prizeNum”:0,“零售”:12.5},{“扩展数据”:{},“手册代码”:“125”,“手册ID”:1,“项目描述”:“插座背面”,“项目编号”:“125”,“项目顺序”:7,“prizeNum”:0,“零售”:10},{“扩展数据”:{},“手册代码”:“1500”,“手册ID”:1,“项目描述”:“灯”,“itemNo:“1500”,“itemOrder”:8,“prizeNum”:0,“retail”:6},{“ExtensionData”:{},“BrockCode”:“1600”,“BrockureId”:1,“itemDesc”:“Bell”,“itemNo”:“1600”,“itemOrder”:9,“prizeNum”:0,“retail”:8},{“ExtensionData”:{},“BrockCode”:“170”,“BrockureId”:1,“itemDesc”:“刹车”,“itemDesc”:“170”,“itemOrder”:10,“prizeNum”:20,“retail”:5.5}”;
var profitCodes='[{“ExtensionData”:{},“profitCode”:1,“profitDesc”:“A-标准40%利润”,“profitName”:“40A”},{“ExtensionData”:{},“profitCode”:2,“profitDesc”:“B-标准40%利润”,“profitName”:“40B”}”;
viewModel=newcodemodel(JSON.parse(codesJSON)、JSON.parse(itemsJSON));
//console.log(viewModel);
ko.applyBindings(viewModel,$(“#ProfitModel”)[0]);
/*
$.ajax({
url:'@url.Action(“GetProfitCodesJSON”,“宣传册”),
键入:“POST”,
数据:{编辑:false,手册ID:$.trim($(“#手册ID”).val())},
成功:函数(json){
var codesJSON=@Html.Raw(Json.Encode(Model.brochureProfitCodes));
log(JSON.stringify(codesJSON));
var itemsJSON=@Html.Raw(Json.Encode(Model.brochureItems));
log(JSON.stringify(itemsJSON));
viewModel=新的codeModel(codesJSON,itemsJSON);
$.each(json.profitCodes,函数(索引,值){
var代码=新的profitCode(value.profitCode、value.profitDesc、value.profitName);
viewModel.availableProfitCodes.push(代码);
});
console.log(viewModel);
ko.applyBindings(viewModel,$(“#ProfitModel”)[0]);
}
});
*/
});

添加利润代码

项目编号 兄弟宝典 项目说明 零售业 批发 委员会 接近
items.map(function(item){
    return Object.assign(item, codes.find(function(code){return code.itemNo === item.itemNo})); //NOTE: both Object.assign and find() are ES6
}) 
var codeModel = function(codes, items) {
  var self = this;
  self.items = ko.observableArray(items.map(function(item){
    return Object.assign(item, codes.find(function(code){return code.itemNo ===     item.itemNo})); //NOTE: both Object.assign and find() are ES6
}));
};