Javascript 删除项目后,敲除Js:UI未更新
我使用的是Knockout JS,我有一个删除功能正在运行,但是我的UI没有随着删除而更新,它显示已删除的项目,即使在我的数据库中,数据已被删除,我如何修复? 代码:Javascript 删除项目后,敲除Js:UI未更新,javascript,jquery,knockout.js,knockout-mapping-plugin,Javascript,Jquery,Knockout.js,Knockout Mapping Plugin,我使用的是Knockout JS,我有一个删除功能正在运行,但是我的UI没有随着删除而更新,它显示已删除的项目,即使在我的数据库中,数据已被删除,我如何修复? 代码: 您删除的用户配置文件永远不会从ObservalArray中删除,因为在GetUserDetails()调用之后,旧数组总是与更新的数组合并 最好的方法是在成功回调中从数组中删除用户配置文件,而不是再次调用GetUserDetails()。因此: $.ajax({ type: "POST", dataType: "
您删除的用户配置文件永远不会从ObservalArray中删除,因为在GetUserDetails()调用之后,旧数组总是与更新的数组合并 最好的方法是在成功回调中从数组中删除用户配置文件,而不是再次调用GetUserDetails()。因此:
$.ajax({
type: "POST",
dataType: "json",
data: Model,
url: serverUrl + 'api/controller/Action',
success: function (data) {
self.UserProfile.remove(UserProfile); //DB is already updated, no
//need to call
// GetUserDetails() again
},
}) }
或者,如果出于任何原因希望将已删除的项目保留在数组中,只需更新UserProfile,例如:
UserProfile.deleted(true)
删除后,您应该从可观察数组
self.UserProfile
,此处self.UserProfile(self.UserProfile().concat(UserDetailsmappedData)),删除删除的项目
似乎您正在将结果连接到现有数组当我调用self.GetUserDetails时,我无法清除它并再次绑定self.userprofiles抱歉,我不太理解您的问题。只需在应用程序启动时调用GetUserDetails()一次,并按如下方式填充UserProfile obervablearray:self.UserProfile(UserDetailsmappedData);是的,谢谢,我通常会这样问,一旦我有了GetUserDetails(),那么在GetUserDetails()函数中,我就不能像这样使用self.UserProfile.removeall()或self.UserProfile([]),在我点击ajax之前,清除所有内容并重新绑定为什么你不能这样做?如果我在GetUserDetails()中使用self.UserProfile.removeall()或self.UserProfile([]),它在ajax成功时不会绑定,它将绑定为空
UserProfile.deleted(true)