2

リスタンギュラー モデルで関連付けを定義する必要があります。のように使用するように定義したいのuser.post.titleですが、それでいくつかの問題が発生しています。

独自のサービス層を持つモデルの場合、次のようになります。

app.factory('models.user', function(Restangular) {
  var users;
  users = {};
  return {get: function(user_id) {
    return users[user_id] || (users[user_id] = Restangular.one('users', user_id).get());
  }};
});

app.factory('models.post', ['Restangular', 'models.user', function(Restangular, User) {
  Restangular.extendModel('posts', function(post) {
    post.user || (post.user = User.get(post.user_id));
    return post;
  });
  return {get: function(post_id) {
    return Restangular.one('posts', post_id).get();
  }};
}]);

これによりpost.user().first_name、投稿からそのユーザーにナビゲートすることができますが、コードは非常に醜く、モデルを更新するなど、投稿オブジェクトを複製しようとする無限ループに陥るなど、状況によってはうまく機能しません。

リスタンギュラーモデルで関連付けを定義する方法はありますか?

4

0 に答える 0