1

サーバーからメッセージの配列を取得するためのファクトリを作成しました。次のようになります。

app.factory('messagesService', [
  '$resource',
  function($resource) {
    var self = this;

    self.service = $resource('/messages');

    self.all = function() {
      return self.service.query();
    };

    return {
      all: self.all
    };
  }
]);

このようにしてmessagesService.all()、他のコントローラーから実行できます。

ただし、これはサーバーから生データを返しているため、最初にデータを処理したいと思います。私はAngularが初めてで、正しいやり方を理解しようとしています。

サービスがより完全な Message オブジェクトを返すようにしたいと考えています。

関数を作成して、次のようにサービス ファイルに含めることを考えていました。

self.Message = function(data) {
  var self = this;

  self.author = data.author;
  self.message = $sce.trustAsHtml(data.message);
};

次に、.query() でnew Message(data)オブジェクトを作成し、それらの配列を返すことができました。それはこれを行う正しい方法ですか?self.Message を別のモデル ファイルにカプセル化する必要がありますか?

4

1 に答える 1

1

$resourceの最新バージョンをチェックしてください。「transformResponse」関数を登録できます-私が疑う-あなたが望むものです。Angular 1.2 には多くの優れた機能があり、アップグレードする価値があります (遅かれ早かれ安定したリリースになります)。

ところで、なぜあなたが使うのかわかりません

var self = this;

そうじゃないですか:

app.factory('messagesService', ['$resource', function($resource) {
    var messages = $resource('/messages'); // extra config necessary?
    return {
      all: messages.query
    };
}]);

十分ですか?サービス API は同じままです: messagesService.all().

于 2013-11-04T17:18:44.173 に答える