我试图使用Ember数据,使用ActiveModelAdapter访问元数据。如果控制器设置在路由器型号:Ember数据和元数据 - 从控制器访问
App.ClaimsIndexRoute = Ember.Route.extend
authRedirectable: true
model: ->
@store.findAll 'claim'
而控制器作为元方法如下:
App.ClaimsIndexController = Ember.ArrayController.extend
meta: (->
@store.metadataFor('claim')
).property()
然后我就可以在索引模板访问元数据:
{{meta.page}} {{meta.per_page}} {{meta.total_pages}}
但我需要添加过滤。所以我换了路由器使用setupController
:
App.ClaimsIndexRoute = Ember.Route.extend
setupController: (controller, model) ->
controller.loadClaims()
并在控制器添加loadClaim功能:
App.ClaimsIndexController = Ember.ArrayController.extend
loadClaims: ->
_filter = @get 'filter'
_result = @store.find 'claim', {filter: _filter}
@set 'model', _result
filter: ''
meta: (->
@store.metadataFor('claim')
).property()
actions:
filterClaims: ->
@loadClaims()
现在的元数据不再可用。我使用调试器进入了上下文,似乎无法获取任何内容。
将查询发送到Ember Data有问题吗?有一个更好的方法吗?
顺便提一句,元数据服务器发送的suggested in the docs.
我使用灰烬1.6.1和灰烬数据1.0.0-beta.8.2a68c63a
是您的问题,你说'controller.loadClaims()的''而不是controller.send( 'loadClaims')'? – 2014-09-13 00:47:00
感谢您的建议。没有改变行为。 – noel 2014-09-15 03:54:07