0

アプリのメモ リストをレンダリングする 1 つのテンプレートをレンダリングする ember を使用した Rails アプリがあります。

主なテンプレートは次のとおりです。

<div class="container" style="margin-top: 30px">
   ......
        <ul class="nav nav-list">
          <li class="nav-header">list notes</li>
 #ERROR -> {{  view App.NotesListView contentBinding='App.NotesIndexController' }}
        </ul>
      </div>
      {{#linkTo "notes.new"}} <button class="btn btn-primary">Add Note</button>{{/linkTo}}
    </div>
  ......
  </div>
</div>

私は notes_index_controller を持っています:

App.NotesIndexController = Em.ArrayController.extend

  init: ->
    console.log "entra en notes index controller"

  selectedResource: null

  isEmpty:( ->
    @get('length') == 0
  ).property('length')

および index_route :

App.NotesIndexRoute = Em.Route.extend

  model: ->
    App.Note.find()


  setupController:(controller, model ) ->
    controller.set('content', model )
    controller.set('users', App.User.find() )

このビュー ( App.NotesListView ) をレンダリングしようとすると:

App.NotesListView = Ember.View.extend

  templateName: "notes/list" 

list.hbs

{{#each content}}  #I supose that have to be the NotesIndex´s content but not it is
  <li>test</li>
  <li>{{  view App.NoteListItemView contentBinding='this' }}</li>
{{/each}}

NotesIndexController (メモのリストを取得する場所) をこのビューのコンテンツにバインドできません。

これを行う正しい方法は何ですか?

4

1 に答える 1

0

あなたのメインテンプレートがあなたのニーズAPIでコントローラーを要求することによってあなたのコンテンツindexにアクセスできるはずであると仮定します:App.NotesIndexControllernodesIndexIndexController

JS

App.IndexController = Em.ArrayController.extend
  content: []
  needs: ['notesIndex']
  notesBinding: 'controllers.notesIndex.content'

ハンドルバー

<script type="text/x-handlebars" id="index">
  ...
  {{view App.NotesListView contentBinding='notes'}}
  ...
</script>

メイン テンプレートが同じである場合は、代わりにコントローラーをapplication必要とする必要があります。notesIndexApplicationController

JS

App.ApplicationController = Em.ArrayController.extend
  content: []
  needs: ['notesIndex']
  notesBinding: 'controllers.notesIndex.content'

ハンドルバー

<script type="text/x-handlebars" id="application">
  ...
  {{view App.NotesListView contentBinding='notes'}}
  ...
</script>

最後のコメントに応じて編集します。

setupControllerあなたのフックをこれに書き直してみてくださいNotesIndexRoute

  ...
  setupController:(controller, model) ->
    @_super(controller, model)
    controller.set('users', App.User.find())
  ...

それが役に立てば幸い。

于 2013-08-12T10:51:54.567 に答える