Ember を使用して API から JSON データを取得し、テーブルに挿入しています。ただし、私のレコードは、各レコードが個別の tr 要素で表示されるのではなく、1 つの tr 要素で表示されます。これを設定する方法を知っている人はいますか?私はEmberのドキュメント全体を見てきました。私はEmber 0.9.8.1を使用しています。
HTML (JADE):
script(type="text/x-handlebars")
{{#view Cashier.transactionRowView}}
table
thead
tr
th Date/Time
th User ID
th Amount
th Date/Time
th User ID
th Amount
{{#each Cashier.transactionsController}}
<td>{{datetime}}</td>
<td>{{userId}}</td>
<td>{{amount}}</td>
<td>{{console.datetime}}</td>
<td>{{console.userId}}</td>
<td>{{console.amount}}</td>
{{/each}}
{{/view}}
アプリのコーヒースクリプト:
Cashier = Ember.Application.create(
ready: ->
console.log "Cashier app loaded"
)
モデルのコーヒースクリプト:
Cashier.Transaction = Ember.Object.extend(
id: null
datetime: null
type: null
userId: null
amount: null
)
コーヒースクリプトを見る:
Cashier.transactionRowView = Em.View.extend({
tagName: 'tr'
templateName: 'cashier-transactions'
});
コントローラーのコーヒースクリプト:
Cashier.transactionsController = Ember.ArrayController.create(
content: []
resourceUrl: 'http://localhost:8080/prepaid/cashiertransactions'
loadTransactions: ->
self = this
url = this.resourceUrl
$.getJSON url,
cashierId: "test@test.com"
period: "3"
, (data) ->
transactions = data.transactions
$(transactions).each (index, value) ->
t = Cashier.Transaction.create(
id : value.id
datetime : value.datetime
type : value.type
userId : value.userId
amount : value.amount
)
self.pushObject Cashier.Transaction.create(t)
)
サーバーからのサンプル JSON:
{
"status": "OK",
"transactions": [
{
"amount": 22,
"datetime": 1348137916873,
"id": "CSH37916873",
"type": "TOP-UP: kriskhaira@test.com; PAYMENT METHOD: undefined",
"userId": "test@test.com"
},
{
"amount": 222,
"datetime": 1348142501961,
"id": "CSH42501961",
"type": "TOP-UP: test.htc@test.com; PAYMENT METHOD: undefined",
"userId": "test@test.com"
},
{
"amount": 48,
"datetime": 1348550184793,
"id": "CSH50184793",
"type": "TOP-UP: kriskhaira@test.com; PAYMENT METHOD: undefined",
"userId": "test@test.com"
},
{
"amount": 20,
"datetime": 1348550386661,
"id": "CSH50386661",
"type": "TOP-UP: kriskhaira@test.com; PAYMENT METHOD: undefined",
"userId": "test@test.com"
},
{
"amount": 1800000003000,
"datetime": 1348657215712,
"id": "CSH57215712",
"type": "DEDUCT: kriskhaira@test.com - 3GB Data Plan",
"userId": "test@test.com"
}
]
}