0
我的觀點在更新/刪除/創建後沒有得到體現Angular JS CRUD更新不刷新
我的列表頁面是EmpList。我的更新頁面是EmpDetail。
這裏是我的控制器
$scope.UpdateEmp = function() {
var empl=$scope.Employee;
empFactory.empUpdate.update({ EmpID: $routeParams.EmpID, empval: empl });
$location.path('/EmpList');
};
這裏是我的服務
var resource = {
empUpdate:
$resource('../../Employee/PutEmployee/:EmpID', { EmpID: '@EmpID', empval: '@empl' }, { update: { method: 'PUT', isArray: true } })
}
return resource;
這裏是我的MVC控制器
[HttpPut]
public JsonResult PutEmployee(int id, Employee empval)
{
empval.EmpID = id;
int index = emp.GetEmployees().FindIndex(i => i.EmpID == empval.EmpID);
emp.GetEmployees().RemoveAt(index);
emp.GetEmployees().Add(empval);
return Json(emp.GetEmployees(), JsonRequestBehavior.AllowGet);
}
MVC控制器獲取調用和數據得到正確更新,但它沒有反映在主頁
注意:在Emplist.html中,我將控制器映射到執行查詢部分以反映更改的位置。該URL根本不會重定向到EmpList。
$scope.Employees = empFactories.query(function() {
console.log($scope.Employees);
});
感謝布倫特。但是這裏的問題是更新存在於另一個控制器中,我的員工範圍在不同的頁面中。我不知道如何直接將此控制器的響應分配給其他頁面的視圖。我的另一個問題是,在我的代碼中,我將它重定向到它應該執行查詢的列表頁面,但爲什麼重定向沒有像預期的那樣發生,url也不會更改爲#/ Emplist,顯然查詢更新列表是還沒有執行 – TechQuery
這聽起來像你沒有你的應用程序結構正確。當頁面加載時(從重定向或點擊鏈接),它加載該頁面的控制器並更新$ scope。你不應該在控制器之間傳遞東西。您可以做的最好的做法是在URL中傳遞查詢字符串,並在下一個控制器中解釋它們。 –
我的主要列表頁面是EmpList,從那裏它重定向到我有更新按鈕的EmpDetail頁面。當我點擊更新時,EmpDetail中的控制器被觸發並將其重定向到EmpList。由於我有在EmpList中可用的視圖,我不知道如何在empDetail的控制器中使用$ scope來填充:( – TechQuery