0

Angularアプリでサーバーからモデル データを表示するベスト プラクティスは何ですか?

たとえば、私のコントローラーでは、(カスタムngResourceサービスを使用して) サーバーからモデルを取得しています。次に、アプリのクライアント側で何らかの異なるモデルを作成する必要があります。

customApiService.query({ url: 'items' }, function (res) {
   // made it like this and do everything in partials with "ng-repeat"?!
   $scope.items = res;

   // but i need to model server data on client...
   angular.forEach(res, function (key, i) {
     $scope.viewModel = {
        description: key.anotherNameField // e.g. different third-party services return description under different names
     };
   });
});
4

1 に答える 1

2

このような場合、angular resourceコントローラー内で直接使用しないようにします。私たちは独自のサービスを作成します

appRoot.factory('modelService', ['$resource', '$q', function ($resource, $q) {
function ModelClass() {
   this.PropertyOne=null;
   this.PropertyTwo=null; 
}
var serviceObj= {
      getData: function () {
         $resource('url').query(function(data) {
               var modelList=[];
               //Do a foreach on each record in 'data' and create 'ModelClass' object and map properties
               return modelList;
         });
      }
   }
  return serviceObj;
}]);

これにより、コントローラー、つまりビューに公開されるものをより詳細に制御できます。ここでのモデルの所有権はサービスにあります。

同じサービスをどこにでも注入できるため、カスタム マッピングを何度も行う必要はありません。

于 2013-05-20T12:23:33.593 に答える