鼠标视图在mouseDown上重复

时间:2012-09-27 11:00:07

标签: javascript ember.js

我正在使用Ember制作一个网络应用,在那里你可以看到体育比赛的不同结果。比赛视图包括有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”访问视图元素。元素和&amp; elementId -properties在两者中都是未定义的。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

根据您的问题,我只了解您遇到的一个问题,即从mouseDown函数中访问元素和elementId。

尝试this.get('element')this.get('elementId')