1

Emberガイドのテンプレートセクションでは、linkToヘルパーの使用方法について説明しています。しかし、次の質問に対する答えが見つからないようです。

Postオブジェクトのいくつかのプロパティを表示するページがあります。このページには、現在の投稿に属するコメントを表示する必要があるリンク「コメント」が含まれています。

// Router
App.Router.map(function(match) {
  match('/posts').to('posts', function(match) {
    match('/:post_id').to('post', function(match) {
      match('/').to('postIndex');
      match('/comments').to('comments');
    });
  });
});

// post template
...
{{#linkTo "comments"}}Comments{{/linkTo}}
...
{{outlet}}

コントローラのコンテンツに現在の投稿のコメントを入力するために、CommentsRou​​teを定義するにはどうすればよいですか?

App.CommentsRoute = Ember.Route.extend({
  model: function() {
    // I need to get the content of the postController here
    // this.controllerFor('post') seemed obvious, but doesn't work
    post = ????;
    post.get('comments')
  }
})

前もって感謝します。

4

1 に答える 1

2

controllerForルート内からpostController にアクセスできます。

App.CommentsRoute = Ember.Route.extend({
  model: function() {
    var controller = this.controllerFor('post');
    return controller.get('comments');
  }
});

ember-dataを使用していますか?その場合、投稿データをロードするときにコメント データをサイドロードするのが理にかなっています。https://github.com/emberjs/data/blob/master/BREAKING_CHANGES.md#revision-11

更新: 唱えget('comments')get('comments.content')

更新:元に戻されましたget('comments')

于 2013-01-05T11:59:29.860 に答える