2015-07-13 54 views
-1

我遇到了一個問題,我無法解決。我把客戶名單如下:角度拼接不能按預期工作

$scope.customers = customersList; 

然後在我的刪除方法我用下面的方法:

$http({ 
     method: "delete", 
     url: envConfig.restUrl + "customers/" + customer.id 
    }); 
$scope.customers.splice($scope.customers.indexOf(customer), 1); 

它完美,而是當我改變標籤...噗,刪除的數據回來。我有客戶列表的本地副本,應該由splice()編輯。那麼爲什麼它仍然沒有被刪除,直到我刷新頁面?

+1

請分享詳細代碼。這一個不夠充分 –

+0

因爲您已更新列表中存儲的客戶列表,而不是實際的customersList。對customersList執行操作,然後在範圍內進行更新。事情會起作用 – nikhil

+1

你可以發佈一些代碼......很難說,否則 – akashrajkn

回答

0

也許你的ajax請求不起作用。你需要在$ http請求成功的時候使用splice方法。例如:

$http({ 
     method: "delete", 
     url: envConfig.restUrl + "customers/" + customer.id 
    }).success(function(data, status, headers, config){ 
     $scope.customers.splice($scope.customers.indexOf(customer), 1); 
    }); 

這樣,您可以確保該項目在後端被刪除。

請記住,$ http是一個異步任務。您應該檢查成功和錯誤回調,以插入一些客戶端邏輯。

+0

但有什麼區別?立即從陣列中刪除,或成功回調? – Grundy

+0

不用說,$ http就像一個魅力。 – Treck

+0

您的請求中可能會出現錯誤。即使後端未完成請求,問題中的代碼也會刪除該元素。這樣,您將向用戶顯示該項目不再存在,但它仍在數據庫中,例如。下次您列出元素時,該項目仍然存在 –