1

カードセットが左側のサイドバーに表示されるフラッシュカードアプリをやっています。セットをクリックすると、メイン パネルに次のように表示されます。

  1. ボタンバー
  2. カードのテーブル。

ボタンバーのスタディボタン(リンク)をクリックすると、カードテーブルをスタディパネルに置き換えてほしいです。

セットやセットの下でのネスティングスタディなど、これを行うさまざまな方法を試しましたが、どちらも機能しません。現在、セットの下にネストされていますが、問題は次のとおりです。

  1. セット ID を入力するスタディ リンクを取得できません。おそらく、アウトレットではなく部分的なb / cボタンバーですか?
  2. IDなしでもリンクをクリックできます(テスト用にハードコードされたものを試しました)が、スタディページではなくセットテーブルが表示されます。

以下の関連コード。完全なコードはgithubにあり、 herokuで表示できます。

これを設定する最善の方法についてのヘルプに感謝します。

ルーティング

App.Router.map ->
  @resource 'sets', ->
    @resource 'set', { path: ':set_id' }, ->
      @route 'study', { path: 'study' }, ->


App.SetsRoute = Ember.Route.extend
  model: -> App.Set.find()

App.SetRoute = Ember.Route.extend
  setupController: (controller, model) ->
    controller.set 'content', model

App.SetStudyRoute = Ember.Route.extend
  model: ->  App.Set.find(params?.set_id)
  setupController: (controller, model) ->
    controller.set 'content', model

セット.hbs

<div id="sets" class="span2">
  <div class="well well-small sidebar-nav-fixed">
      {{partial "sets/set_list"}}
  </div>
</div>

<div class="span9">
  {{outlet}}
</div>

set.hbs

{{partial "sets/set_actions"}}
<h3>&nbsp;&nbsp;{{name}}&nbsp;(id: {{id}})</h3>
{{render "cards/table" cards}}

セット/_set_action

{{#linkTo set.study set class="btn btn-primary"}}Study!{{/linkTo}}
<button class="btn btn-primary" {{action addCard}}>Add Card</button>
<button class="btn btn-danger" {{action delete}}>Delete Set</button>
4

1 に答える 1

0

set_actions のスタディ リンクはコントローラーを参照する必要があることがわかります (これは set オブジェクトを参照します)。そう:

{{#linkTo sets.study controller class="btn btn-primary"}}Study!{{/linkTo}}.  

あとは、ルートなどが正しく指定されている限り、動作するようです。git で完全なソリューションを更新します。

于 2013-02-26T23:58:14.803 に答える