我已经完成了与Chosen集成的Ember.js示例(https://github.com/harvesthq/chosen)
CoffeeScript的:
App.ChosenSelectView = Em.Select.extend({
didInsertElement: ->
@_super()
@$().chosen()
# Assumes optionLabelPath is something like "content.name"
@addObserver(@get("optionLabelPath").replace(/^content/, "content.@each"), -> @contentDidChange())
contentDidChange: ->
# 2 ticks until DOM update
Em.run.next(this, (-> Em.run.next(this, (-> @$().trigger("liszt:updated")))))
})
Run Code Online (Sandbox Code Playgroud)
困扰我的是我在触发Chosen小部件更新之前我不需要多少时间.从我的实验中可以看出2个循环是可以的,但也许有更好的方法可以用于整个过程?
jsfiddle的完整示例:http://jsfiddle.net/oruen/qfYPy/