1

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.userdata.dataApplyChanges

それで、これをもっと目立たないようにする方法はありますか?そのままでは、モデルを取得するために追加のコールバックを行う必要があります。エラーが発生した場合にのみエラーを送信し、モデルを取得するためのコールバックを追加する必要がありますか? より良い方法はありますか?

4

1 に答える 1