3

ほとんど同じコンテンツと機能を共有する 2 つの異なるページ (ホームと投稿と呼びます) がある場合、一方を他方にバインドする最良の方法は何ですか?

このフィドルでは、次のようにルーターに直接設定することで、あるビューのコンテンツを他のビューのコンテンツに関連付けました。

Router: Ember.Router.extend({
 root: Ember.Route.extend({

     //transitions 

      home: Ember.Route.extend({
          route: '/',
          connectOutlets: function(router) {    
               var posts = router.get('postsController.content');                              
               router.get('homeController').set('content', posts);
               router.get('applicationController').connectOutlet('home');
          },
      }),

    //posts and other states
  })
})

しかし: 投稿のコンテンツが更新される場合、ホーム コンテンツをオンザフライで更新する必要はありませんが、必要な場合は必要でしょうか?

他にどのような方法がありますか?connectControllers() を使用して WHERE を使用することは可能ですか? これが私の-失敗した-試みです:別のフィドル

home: Ember.Route.extend({
     route: '/',
     connectOutlets: function(router) {                                            
         router.get('homeController').connectControllers('posts');                          
         router.get('applicationController').connectOutlet('home');
      },                    
})
4

1 に答える 1

5

templateヘルパーを使用できます。

<script type="text/x-handlebars" data-template-name="posts">
  <div class="right"><h2>posts page</h2>
    {{template "posts-details"}}
  </div>            
</script>

<script type="text/x-handlebars" data-template-name="posts-details">
  {{#each post in content}} 
    <article>                                   
      <h3><a {{action "doPost" context="post"}} {{bindAttr id="post.id"}}>{{post.title}}</a></h3>
      <p>{{post.date}}</p>
    </article>
  {{/each}}
</script>

更新されたフィドルを参照してください

于 2012-10-09T12:13:50.453 に答える