0

リンクされたテンプレート内で既に受け取った情報を使用したい。ルートをネストすると大量のエラーが発生し、このデータを渡す方法が少しわかりませんが、可能に違いないと思われますか?

これは機能しますが、ハックが不十分だと思います。理想的には、1 つの API ラウンドトリップだけが必要です...

App.Router.map ->
  @resource 'photos'
  @route 'photo', path: 'photo/:photo_id'


App.PhotosRoute = Ember.Route.extend
  model: ->
    Ember.$.getJSON('http://api.flickr.com/services/feeds/photos_public.gne?tags=cake&tagmode=all&format=json&jsoncallback=?')

  setupController: (controller,model) ->
    controller.set 'photos', model.items.map (i) ->
      i.id = model.items.indexOf(i)


App.PhotoRoute = Ember.Route.extend
  model: (params) ->
    jQuery.getJSON('http://api.flickr.com/services/feeds/photos_public.gne?tags=cake&tagmode=all&format=json&jsoncallback=?').then (api) ->
      api.items[params.photo_id]

App.PhotosController = Ember.ObjectController.extend
  itemController: 'photo'

{{#linkTo 'photo' this }}<img {{bindAttr src="media.m"}} />{{/linkTo}}
4

1 に答える 1

0

を使用しmodelFor(routeName)て、あるルートからモデルを取得できます。あなたの場合、おそらくすべてのデータを取得しPhotosRoute、それを再利用したいと考えています。あなたはあなたの中でこれを使うことができますPhotoRoute:

App.PhotoRoute = Ember.Route.extend
  model: (params) ->
    @modelFor('photos').items[params.photo_id]

したがって、1 つの API 呼び出しだけが実行されます。

于 2013-10-31T12:48:54.240 に答える