0

我想使用链接模板中已经收到的信息。嵌套路由产生了一大堆错误,我对如何传递这些数据有点迷茫,但似乎它必须是可能的?

这行得通,但我觉得这是一个糟糕的黑客。理想情况下,我只想要一个 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]

所以只会完成一个 api 调用。

于 2013-10-31T12:48:54.240 回答