2016-05-09 4 views
0

Мне нужно настроить все коробки на одной высоте. Я сделал это, но у меня проблема с highcharts. Это загрузка после моей функции, и когда все это загружено в ящики, у меня всего лишь половину графика.Функция вызова после загрузки Highchart Ember.js

Как я могу вызвать функцию после загрузки высоких карт?

import Ember from 'ember'; 

export default Ember.Component.extend({ 
    /** 
    * Equal heights of each box wrapper 
    */ 
    sameHeight: Ember.run.schedule('afterRender', function() { 

     let boxes = document.getElementsByClassName("box"); 
     var tallest = 0; 

     // Loop over matching and finding tallest 
     for (let i = 0; i < boxes.length; i++) { 
      let elementHeight = boxes[i].offsetHeight; //Get the height and width of a element, including padding and border 
      if (elementHeight > tallest) { 
       tallest = elementHeight; 
      } 
     } 
     //add same height to all 
     var findClass = document.getElementsByClassName('box'); 
     for (let i = 0; i < findClass.length; i++) { 
      findClass[i].style.height = tallest + "px"; 
     } 
    }) 

}); 

Это функция в компоненте Ember.

+0

Как вы относитесь к высоким диалогам? Можете ли вы представить пример заполнения нерабочего кода в качестве репозитория git или как ember-twiddle? – Lux

+0

https://guides.emberjs.com/v1.10.0/understanding-ember/run-loop/ –

+0

Run Loop - это ответ на мою проблему. Просто поставьте вместо этого sameHeight: Ember.run.schedule ('afterRender', function() -> sameHeight: Ember.run.next ('afterRender', function() –

ответ

-1
import Ember from 'ember'; 

export default Ember.Component.extend({ 

    sameHeight: Ember.run.next('afterRender', function() { 

     let boxes = document.getElementsByClassName("box"); 
     var tallest = 0; 

     // Loop over matching and finding tallest 
     for (let i = 0; i < boxes.length; i++) { 
      let elementHeight = boxes[i].offsetHeight; //Get the height and width of a element, including padding and border 
      if (elementHeight > tallest) { 
       tallest = elementHeight; 
      } 
     } 
     //add same height to all 
     var findClass = document.getElementsByClassName('box'); 
     for (let i = 0; i < findClass.length; i++) { 
      findClass[i].style.height = tallest + "px"; 
     } 
    }) 

}); 
Смежные вопросы