मेरे पास एक मिश्रण है जो स्वचालित रूप से पुन: गणना करता है और पृष्ठ आकार पर एक div की ऊंचाई सेट करता है।एम्बर व्यू में विंडो विंडो को कैसे बांधना चाहिए?
यह काम करता है लेकिन यह मुझे एक jQuery घटना के लिए बाध्यकारी होने के लिए मूर्खतापूर्ण लगता है और हर बार इसे एम्बर ईवेंट को मैन्युअल रूप से ट्रिगर करने के लिए मूर्खतापूर्ण लगता है।
क्या एम्बर में सीधे खिड़की की घटनाओं से जुड़ने का कोई तरीका है?
App.windowWrapper = Ember.Object.create(Ember.Evented,
resizeTimer: null
init: ->
@_super()
object = this
$(window).on 'resize', ->
window.clearTimeout(object.resizeTimer)
object.resizeTimer = setTimeout(App.windowWrapper.resize, 100)
true
resize: ->
App.windowWrapper.fire('resize')
)
और mixin है कि यह बुला:
मैं एक सरलीकृत JSFiddle here
इस कोड है।
App.Scrollable = Ember.Mixin.create
classNames: "scrollable"
init: ->
Ember.assert("Scrollable must be mixed in to a View", this instanceof Ember.View)
@_super()
didInsertElement: ->
@_super()
@calculateHeight()
App.windowWrapper.on('resize', this, 'calculateHeight')
willDestroyElement: ->
App.windowWrapper.off('resize', this, 'calculateHeight')
@_super()
calculateHeight: ->
offset = @$().offset().top
windowHeight = $(window).height()
@$().css('height', windowHeight - offset)
आप = 'वस्तु की जरूरत नहीं होगी this' यदि आप एक वसा तीर का इस्तेमाल किया (' => ') जब अपने घटना हैंडलर पंजीकृत। – ebryn