我正在尝试从服务器加载已排序商品的列表,然后使用我的模板呈现它们(并http://sammyjs.org/docs/tutorials/json_store_1作为指导):
questions_container = $('.questions_container').first()
@sammy = Sammy '#foo', ->
@use 'Template'
@get '#/', (context) ->
context.log 'Loading questions...'
@load('questions.json')
.then (items) ->
$.each items, (i, item) ->
context.log item.id
context.render('assets/question.template', {item: item})
.appendTo(questions_container)
我观察到有趣的效果,在firebug控制台中,所有项目都按照服务器返回的顺序记录(按id排序),但是在DOM中它们往往会混淆。
这是否因为render()并行逻辑而发生?如何确保DOM中保留项目的顺序?谢谢!
答案 0 :(得分:0)
使用renderEach作为Aaron Quint(Sammy的作者)在Google group上建议:
questions_container = $('.questions_container').first()
@sammy = Sammy '#foo', ->
@use 'Template'
@get '#/', (context) ->
context.log 'Loading questions...'
@load('questions.json')
.then (items) ->
context.renderEach('assets/question.template', items)
.appendTo(questions_container)