2014-12-06 71 views
0

我正在将一个rangeslider作为一个Ember组件实现。大多数情况下它一直工作得很好。问题出现在我试图添加一些车把魔术时。特别是我想将左侧的样式属性绑定到组件中的值。车把如下图所示。灰烬组件未识别 - 绑定到控制器的流血

<div class="slider-connector" {{bind-attr style=leftPercentage}}> 
    <div class="handle-container handle-container-lower"> 
     <div class="handle"> 

     </div> 
     <div class="handle-label"> 
      <strong>Value:</strong> 
      <span>10.00</span> 
     </div> 
    </div> 
</div> 

而且JS是

App.SingleSliderComponent = Ember.Component.extend({ 
template: 'components/single-slider', 
classNames: ['ember-slider'], 
left: -5, 
right: 5, 
rangeStart: -10, 
rangeEnd: 10, 
leftPercentage: 'left: 0%;', 
rightPercentage: 'left: 100%;', 
init: function() { 

}, 
didInsertElement: function() { 

}, 
setLeftPercentage: function() { 
    var val = (this.get('left') - this.get('rangeStart'))/(this.get('rangeEnd') - this.get('rangeStart'))*100; 
    this.set('leftPercentage', 'left: ' + val + '%;'); 
}, 
setRightPercentage: function() { 
    var val = (this.get('right') - this.get('rangeStart'))/(this.get('rangeEnd') - this.get('rangeStart'))*100; 
    this.set('rightPercentage', 'left: ' + val + '%;'); 
}, 
}); 

组件通过

{{single-slider}} 

问题实行的是它不是从Component采取leftPercentage和rightPercentage,而是控制器该组件存在。据我所知,组件应该完全与控制器分开。看看Ember-Inspector,当我选择'show components'时,它不会显示单滑块组件,这导致我相信它在检测组件时遇到问题,这可以解释为什么绑定未本地化到组件。

我的部件是在模板/组件/单slider.hbs和我的JS是组件/ singleSlider.js(但不应该的问题,因为一切都连接在一起。提前

谢谢!

回答

1

解决它显然我不够仔细实现我的组件时 - !的解决方法是调用

this._super(); 

在init调用