我通過服務獲取我的視圖的數據,並使用angular.copy()分配給本地變量。
var init = function() {
$scope.product = angular.copy(EditItemFactory.getSelectedItem());
}
View of my UI after calling init function
$scope.UpdateItem = function (data) {
console.log(data);
var Data = DataFactory.UpdateItem(data);
if (parseInt(Data) != 0) {
$modalInstance.dismiss('Close');
} else {
console.log(Data);
}
}
我傳遞的更新功能來更新數據庫的項目和商店。
但在數據庫更新後的數據被在UI
更新這裏是我的控制器的完整代碼:
(function() {
var productEditCtrl = function ($scope, $modalInstance, EditItemFactory, DataFactory) {
$scope.cancel = function() {
$modalInstance.dismiss('Close');
};
$scope.UpdateItem = function (data) {
console.log(data);
var Data = DataFactory.UpdateItem(data);
if (parseInt(Data) != 0) {
$modalInstance.dismiss('Close');
} else {
console.log(Data);
}
}
var init = function() {
$scope.product = angular.copy(EditItemFactory.getSelectedItem());
}
init();
}
productEditCtrl.$inject = ['$scope', '$modalInstance', 'EditItemFactory', 'DataFactory']
angular.module("SplitWise").controller("productEditCtrl", productEditCtrl)())
我沒有得到綁定修改UI的方式。
注:我想更新UI纔會更新後的數據存儲到數據庫
數據工廠代碼:
(function(){
var DataFactory = function($http)
{
var factory = {};
factory.getAllItems = function()
{
return $http.get("http://localhost:8080/GetAllItems")
}
factory.DeleteItem = function(Product)
{
$http.post("http://localhost:8080/DeleteItem",{"Model":Product.MODEL_NUMBER}).success(function(data){
return data;
}).error(function(err)
{
return err;
})
}
factory.UpdateItem = function(Product)
{
$http.post("http://localhost:8080/UpdateItem",{"Model":Product.MODEL_NUMBER,"Name":Product.NAME,"MSRP":Product.MSRP,"Quantity":Product.QUANTITY}).success(function(Data){
return Data;
}).error(function(err){
return err;
})
}
return factory
}
DataFactory.$inject=['$http']
angular.module('SplitWise').factory("DataFactory",DataFactory)
}())
分享你的'DataFactory'代碼。如果它正在進行HTTP調用,那麼它將是異步的,因此您不能只是'var Data = DataFactory.UpdateItem(data)' – tanmay
hi @tanmay已更新datafactory的代碼 – user3597404