0
以下是我定義我的$資源:
app.factory('User', function($resource){
return $resource('/api/user', {}, {
get: { method:'GET'},
update: { method:'PUT'},
})
})
這是我的控制器:
function SettingsCtrl($scope, $http, User) {
$scope.user = User.get(
{}, //Params
function(data) { //Successfully received data
},
function(data) { //Failure to receive data
}
);
$scope.saveUser = function() {
$scope.user.$update();
console.log($scope.user);
};
}
在控制器頂部的User.get()
呼叫正確地從後端獲取數據。在我的HTML中,我製作了一個按鈕,調用$scope.saveUser
函數,並使用ng-model
創建了一些輸入,看起來雙向數據綁定可以正常工作。當我在$scope.saveUser
函數中調用console.log($scope.user)
時,它會完全按照我的預期返回用戶對象,並在瀏覽器中進行更改。但是,在我的Node後端,我記錄了在PUT請求中收到的對象,並且它不反映我在瀏覽器中所做的任何更改,它看起來與原始相同。點擊瀏覽器中的按鈕後,數據將重置爲其原始值。到底是怎麼回事?爲什麼它不會發送我在瀏覽器中輸入的更新數據?
你可以發佈Node.js控制檯的輸出信息,它涉及調用saveUser時收到的'PUT'嗎?我有幾個想法,但我不確定要走哪個方向。 :) –
當然。在編輯表單並點擊Save(調用'saveUser')後,在瀏覽器中輸入console.log($ scope.user)': '[14:28:56.097]({__v:0,_id: 「50b1a966c12ef0c426000007」,密碼: 「新修改過密碼」})' 這裏就是節點日誌,'的console.log(req.user)': '{__v:0,_id: 「50b1a966c12ef0c426000007」,密碼:「originalPassword 「})' –
我的意思是,這並沒有給你任何比問題更多的信息。你是否想要全部的PUT請求和所有的頭文件和垃圾?這真的很長。 –