我正在使用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/

10-10 18:35