Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除项目后,敲除Js:UI未更新_Javascript_Jquery_Knockout.js_Knockout Mapping Plugin - Fatal编程技术网

Javascript 删除项目后,敲除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: "

我使用的是Knockout JS,我有一个删除功能正在运行,但是我的UI没有随着删除而更新,它显示已删除的项目,即使在我的数据库中,数据已被删除,我如何修复? 代码:


您删除的用户配置文件永远不会从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)