Javascript 删除项实际上并不是将其删除
我有一个编辑表单,它显示已添加/存储的项目,并带有删除项目的选项。如果我单击“删除”,则会弹出“保存”成功消息,但当我返回列表显示时,我刚刚“删除”的项目仍然存在 此表显示项目,旁边有“删除”按钮:Javascript 删除项实际上并不是将其删除,javascript,c#,html,Javascript,C#,Html,我有一个编辑表单,它显示已添加/存储的项目,并带有删除项目的选项。如果我单击“删除”,则会弹出“保存”成功消息,但当我返回列表显示时,我刚刚“删除”的项目仍然存在 此表显示项目,旁边有“删除”按钮: <table id="newPatientForm"> <tr> <th>First Name</th> <th>Last Name</th>
<table id="newPatientForm">
<tr>
<th>First Name</th>
<th>Last Name</th>
<th></th>
</tr>
<tbody data-bind="foreach:Patients">
<tr>
<td class="form-group"><input data-bind="value: FirstName, event: {change: flagPatientAsEdited}, hasfocus: true" /></td>
<td class="form-group"><input data-bind="value: LastName" /></td>
<td class="form-group"><button data-bind="click: $parent.deletePatient">Delete</button></td>
</tr>
</tbody>
</table>
更新:经过一些调试后,我注意到js文件中的“PatientsToDelete”被列为未定义,尽管我在ViewModel中声明了它。但是,js文件中还有什么我没有的吗?在这一行:
self.PatientstoDelete.push(patient.PatientId());
你没有把t大写
self.PatientsToDelete.push(patient.PatientId());
// ^--- Capitalize this T
在JS中,是否缺少将数据提交给控制器的内容?看起来您所做的一切都是客户端的,只影响JS数组,而不影响文档,并且不会以任何方式将更改发回服务器。我用整个JS文件更新了问题。您是否已完成保存?如果是这样,您是否进入了
siteViewModel=CreateSiteViewModelFromSite(site)代码>新视图模型正确吗?我从2个患者开始,在执行保存时尝试删除一个患者。在我“删除”一个之后,我通过保存和Patients:count=1
进行了一步,因此此时它只看到我没有“删除”的患者,但随后我继续进行并PatientsToDelete:count=0
因此它没有将我单击删除的患者更改为“PatientsToDelete”@我已经用我在调试期间发现的一些信息更新了这个问题。我希望这会有帮助。呃,我讨厌我没有注意到o型的。我想这是真的,有时候你需要别人来看看。谢谢它起作用了!
self.PatientstoDelete.push(patient.PatientId());
self.PatientsToDelete.push(patient.PatientId());
// ^--- Capitalize this T