1

CoffeeScriptではBackbone.jsとChaplin.jsを使用しています。挑戦があります。ルーティングされたビューでURLパラメータを取得するにはどうすればよいですか?

routers.coffee:

define ->     
  'use strict'
  (match) ->  
    match "account/albums/:page", "accounts#albums"


define [                                                      
  'chaplin'                                                   
  'collections/albums'                                        
  'views/form_view'                                           
  'views/inline/album'                                        
  'text!template/account/_form_image.html'                    
  'text!template/account/list_albums.html'                    
], (chaplin,                                                  
  Albums,                                                   
  FormView,                                                 
  AlbumView,                                                
  formTemplate,                                             
  template                                                  
) ->                                                          
  'use strict'                                                

  class AccountAlbums extends chaplin.CollectionView          
    collection: new Albums                                    
    itemView: AlbumView                                       
    template: template                                        
    containerMethod: 'html'                                   
    listSelector: '[data-placeholder=albums-tile]'            

    # TODO: understand how to get router arguments in the view
    initialize: (options) ->                                  
      super                                                   
      @on 'addedToDOM', => @collection.fetch()                
      # Need to something like this.                          
      # But I do not know how to get it.                      
      #@collection.fetch                                      
      #  data:                                                
      #    page: page                                         
4

1 に答える 1

0

これは古い質問ですが、完全を期すために、ここに答えがあります。

ルートは、上記のコードに示されていないalbumsコントローラー()内のメソッドにデータを送信しています。accountsそのメソッドは次のようになります。

  albums: (params, route, options) ->
    @collection = new Albums()
    @view = new AccountAlbums collection: @collection
    @collection.fetch
      data:
        page: params.page

ビューはわざわざデータを取得する必要はありません。コレクションにデータを取得するように指示するのはコントローラーの仕事です。次に、ビューは自動的にそれをレンダリングします。

于 2013-03-30T19:54:18.770 に答える