我有一个带有可观察数组的淘汰模型,试图调用删除函数但说“删除”是未定义的。这是一个有效的方法:
this.reportGroups.remove(function (item) { return item.fieldId == data.fieldId });
这是给出错误的那个:
this.reportFields.remove(function (item) { return item.FieldId == data.FieldId });
它们都是 observableArrays,它确实包含项目,我检查了传递的值是否有效并且包含 FieldId 等,所以我不确定如何进一步调试?
编辑:
进入数组的模型:
function FieldItem(FieldId, TableId, GroupId, PositionInGroup, FieldName, FieldType, FriendlyName, Description, QueryNumber) {
return {
FieldId: FieldId,
TableId: TableId,
GroupId: GroupId,
PositionInGroup: PositionInGroup,
FieldName: FieldName,
FieldType: FieldType,
FriendlyName: FriendlyName,
Description: Description,
QueryNumber: QueryNumber
};
}
它们是通过推送到 reportFields observableArray 来添加的,并删除调用的函数,如下所示:
<!-- ko foreach: reportFields -->
<tr>
<td><span data-bind="text: FriendlyName"></span></td>
<td><img src="SystemImages/cross.png" data-bind="click: $parent.removeField" /></td>
</tr>
<!-- /ko -->