我在获取一个余烬视图以响应视频标记中的“已结束”视图时遇到问题 - 我甚至在应用程序中设置了自定义并在视图上创建了一个已结束的方法,但没有骰子。我在视图的didInsertElement中通过$()获得了一些工作,但视图的标准“on”方法没有做任何事情 - 就像事件发生在元素上,但没有进入视图。但是通过$设置意味着“这个”不是绑定到视图而是绑定到元素,这对我没有帮助
我的观点:
CommercialView: Em.View.extend
tagName: 'video'
templateName: "commercial"
attributeBindings: ['autoplay', 'width', 'height']
width: 320
height: 240
autoplay: true
ended: (event) ->
debugger
didInsertElement: () ->
#this.on('ended', this.ended) #doesn't work
this.$().on('ended', this.ended) #shifts this to the element
我的申请:
App = Em.Application.create
customEvents: {
'ended':'ended'
}
答案 0 :(得分:4)
这是jQuery的限制,Ember用于事件。它无法委托视频或音频事件:http://jsfiddle.net/XzVXx/
不幸的是,它也缺乏为context
之类的事件采用$.ajax()
参数的能力,因此你无法指定this
的含义。
你最接近的是:
didInsertElement: function(){
this.$().on('ended', $.proxy( this.ended, this )) ;
}