我正在使用Ember制作一个Web应用程序,在这里您可以看到体育比赛的不同结果。比赛视图由具有2个插槽的加热块组成,所有插槽都具有“运动员”属性。当您单击插槽时,运动员进入第二轮。
这是我的看法:
App.SlotView = Em.View.extend({
heat:null,
athlete:null,
tagName:"span",
mouseDown : function(){
//Here's the problem: "this" isn't the original slot, but a new slot which has the original slot in its _context. I'm fixing the error with this:
var target = this._context ? this._context : this;
//Move the athlete forward etc...
//....
}})
这是我创建新广告位的方法:
//Inside a loop
slot = App.SlotView.create({
athlete:seed,
heat:heat,
round:1,
classNames:['slot-view']
});
//slot is added to a heatview, which is added to App.round1heats
这是模板
<script type="text/x-handlebars">
<div class="row span2">
{{#each App.round1heats}}
{{#view App.HeatView class="clearfix heat round1"}}
{{#each slots}}
<div class="athlete">
{{#view App.SlotView}}
{{athlete.name}}
{{/view}}
</div>
{{/each}}
{{/view}}
{{/each}}
</div>
</script>
还有一个问题,我无法通过mouseDown函数中的“ this”或“ this._context”访问视图的元素。 element和elementId -properties都未定义。
我想念的是什么?
最佳答案
从您的问题中,我仅了解您所遇到的问题之一,即从mouseDown
函数中访问element和elementId。
尝试this.get('element')
和this.get('elementId')
关于javascript - Ember View 在mouseDown上重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12619829/