【发布时间】:2019-02-17 00:38:30
【问题描述】:
我正在寻找一种使用敲除和敲除映射将项目添加到属于另一个数组中的项目的数组的方法。
我有以下,一个人,它有一个 WorkItems 数组,它有一个 ActionPlans 数组。人员 > 工作项 > 行动计划
敲除代码如下-
var PersonViewModel = function(data) {
var self = this;
ko.mapping.fromJS(data, trainingCourseItemMapping, self);
self.addWorkItem = function() {
var WorkItem = new WorkItemVM({
Id: null,
JobSkillsAndExpDdl: "",
JobSkillsAndExperience: "",
ActionPlans: ko.observableArray(),
PersonId: data.Id
})
self.WorkItems.push(WorkItem)
};
self.addActionPlan = function () {
var actionPlan = new ActionPlanVM({
Id: null,
priorityAreaStage: "",
goal: "",
action: "",
byWho: "",
byWhen: ""
WorkItemId: data.Id
});
self.ActionPlans.push(actionPlan);
};
}
数组映射
var trainingCourseItemMapping = {
'WorkItem': {
key: function(workitem) {
return ko.utils.unwrapObservable(workitem.Id);
},
create: function(options) {
return new WorkItemVM(options.data);
},
'ActionPlans': {
key: function (actionPlanItem) {
return ko.utils.unwrapObservable(actionPlanItem.id);
},
create: function (options) {
return new ActionPlanVM(options.data);
}
}
}
数组项映射
var WorkItemVM = function(data) {
var self = this;
ko.mapping.fromJS(data, trainingCourseItemMapping, self);
}
var ActionPlanVM = function(data) {
var self = this;
ko.mapping.fromJS(data, {}, self);
}
在我看来,我想要以下(已编辑)-
<tbody data-bind="foreach: WorkItems">
//body table html here
</tbody>
<!--ko foreach: WorkItems-->
<tbody data-bind="foreach: ActionPlans">
//body table html here
</tbody>
<!--/ko-->
错误
我目前遇到的错误是 -
无法处理绑定“click: function(){return addActionPlan }”
如何将项目推送到 WorkItems 的“嵌套”操作计划数组?谢谢
编辑 -
按要求提供图片 -
在此之前是主窗体中的“添加工作项”按钮。当按下 Save 时,WorkItem 会显示在表格行中(一切正常)
【问题讨论】:
-
请添加图片,我对这个问题很感兴趣,但不知道如何提供帮助。
-
图片添加感谢
标签: javascript asp.net-mvc knockout.js knockout-2.0 knockout-mapping-plugin