渲染项目列表会破坏顺序

时间:2012-02-26 05:30:28

标签: javascript sammy.js

我正在尝试从服务器加载已排序商品的列表,然后使用我的模板呈现它们(并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中保留项目的顺序?谢谢!

1 个答案:

答案 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)