Я пытаюсь получить доступ к метаданным с помощью Ember Data, используя ActiveModelAdapter. Если контроллер настроен в роутере с моделью:
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? Есть лучший способ сделать это?
Между прочим, метаданные отправляются сервером, как предложено в документации.
Я использую Ember 1.6.1 и Ember data 1.0.0-beta.8.2a68c63a.
controller.loadClaims()
вместоcontroller.send('loadClaims')
? - person Josh Padnick   schedule 13.09.2014