angular $save 関数を使用しようとして、角度リソースを使用しています。
デフォルトでは、$save はモデルをサービス URL に送り返します。ただし、モデルがサービスに返されることを期待しているようです (これを行わないと、モデルは空になります)。メッセージとエラーをコントローラーに返す最良の方法は何だろうと思っていました。
私の解決策は、処理中に発生したエラーを格納するエラー配列と、返すモデルを格納するフィールドを持つ新しいクラスを PHP で作成することでした。その後、コールバック関数で送り返されて処理されます。
$scope.ApplyChanges=function(){
console.log("saving...");
$scope.user.$save(function(data){
console.log(data);
if (data.errors.length>0){
for (error in data.errors){
$scope.alerts.push({type:'danger', msg: data.errors[error].msg});
}
$scope.user=User.get({id:data.data.UserName});
} else {
$scope.user=User.get({id:data.data.UserName});
$scope.alerts.push({type:'success', msg: "User data saved successfully"});
}
}, function(err){
$scope.alerts.push({type:'danger', msg: "There was a problem saving your data: " + err});
});
これらの行は次のとおりです。to を$scope.user=User.get({id:data.data.UserName});
割り当てただけでは、ユーザーはサービスを使用しなくなり、再度使用しようとするとエラーが発生するため、使用する必要がありました。$scope.user
data.data
ApplyChanges
それで、これをもっと目立たないようにする方法はありますか?そのままでは、モデルを取得するために追加のコールバックを行う必要があります。エラーが発生した場合にのみエラーを送信し、モデルを取得するためのコールバックを追加する必要がありますか? より良い方法はありますか?