Integração de tabela de brasas com Ember-model / Ember-data
Eu estou tentando vincular modelos de ember à tabela de ember para puxar registros paginados do servidor e adicioná-los à tabela ao rolar para baixo.
Eu posso fazê-lo funcionar apenas solicitando a minha api url com o número da página como no exemplo do ajaxhttp://addepar.github.io/ember-table/ mas eu não consigo descobrir como integrá-lo com o ember-model para criar e emberar objetos e depois adicioná-los à tabela.
Aqui está o meu código para apenas fazer um pedido de ajax e adicionar à tabela. Alguém pode me dizer como eu posso mudar isso para usar ember-model / ember-data em seu lugar.
App.TableAjaxExample = Ember.Namespace.create()
App.TableAjaxExample.LazyDataSource = Ember.ArrayProxy.extend
createGithubEvent: (row, event) ->
row.set 'id', event.id
row.set 'name', event.name
row.set 'isLoaded', yes
requestGithubEvent: (page) ->
content = @get 'content'
start = (page - 1) * 30
end = start + 30
per_page = 40
# something like this ???
#App.Detail.find(type: 'companies', page: page, per_page: per_page).on 'didLoad', ->
url = "http:/myurl.dev/admin/details.json?type=companies&page=#{page}&per_page=30"
Ember.$.getJSON url, (json) =>
json.details.forEach (event, index) =>
row = content[start + index]
@createGithubEvent row, event
[start...end].forEach (index) ->
content[index] = Ember.Object.create eventId: index, isLoaded: no
objectAt: (index) ->
content = @get 'content'
#if index is content.get('length') - 1
# content.pushObjects(new Array(30))
row = content[index]
return row if row and not row.get('error')
@requestGithubEvent Math.floor(index / 30 + 1)
content[index]
App.TableAjaxExample.TableController =
Ember.Table.TableController.extend
hasHeader: yes
hasFooter: no
numFixedColumns: 0
numRows: 21054
rowHeight: 35
columns: Ember.computed ->
columnNames = ['id', 'name']
columns = columnNames.map (key, index) ->
Ember.Table.ColumnDefinition.create
columnWidth: 150
headerCellName: key.w()
contentPath: key
columns
.property()
content: Ember.computed ->
App.TableAjaxExample.LazyDataSource.create
content: new Array(@get('numRows'))
.property 'numRows'
É o possível ou isso diminui muito?
Obrigado pela ajuda. Rick