gpt4 book ai didi

javascript - knockout : Trouble removing a newly added item

转载 作者:太空宇宙 更新时间:2023-11-04 15:38:43 26 4
gpt4 key购买 nike

我正在尝试学习如何使用 KnockOut...以前从未使用过,并且我已经在已经使用它的网站上陷入困境。这里一切正常:

        function MasterViewModel() {
var self = this;
self.Supervisors = ko.mapping.fromJS(@Html.Raw(JsonConvert.SerializeObject(Model.Supervisors)));

self.AddSupervisor = function(request) {
var request = new Supervisor({
FullName: $('#SupervisorId option:selected').text(),
SupervisorId: $('#SupervisorId option:selected').val()
});
self.Supervisors.push(request);
// do server side call here
}

self.RemoveSupervisor = function(request) {
if (request.SupervisorID() > 0)
{
self.Supervisors.remove(request);
// do server side call here
}
}
}

嗯。一切几乎都工作正常:

  • 来自服务器的初始数据加载并完美显示
  • 我可以删除现有项目(来自原始页面加载时的服务器)
  • 我可以添加新项目

但是,当我尝试删除刚刚添加的项目时,我得到以下信息:

Uncaught TypeError: request.SupervisorID is not a function

enter image description here

SupervisorId 是一个下拉列表。 AddSupervisor 调用是通过按钮进行的​​。如果需要的话我可以显示 HTML。另外,虽然我可能不需要这个if:

if (request.SupervisorID() > 0)

即使没有它,我也需要添加的主管的 ID。

最佳答案

我猜测服务器端不区分大小写,并且正在使用 SupervisorID 加载数据。当您添加新的时,您将使用 SupervisorId(小写的 d)创建它。服务器必须接受这一点。 JavaScript 则不然。

您需要将新创建的用户更改为使用 SupervisorID,或者让 RemoveSupervisor 函数使用 SupervisorId - 无论哪种更改更有意义在你的整体结构中。

关于javascript - knockout : Trouble removing a newly added item,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44073649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com