2016-05-09 21 views
0

我需要設置所有高度相同的框。 我已經這樣做了,但我有一個highcharts的問題。 它是加載後我的功能,當它所有的`裝入箱子我只有一半圖表。加載高畫圖後的調用函數Ember.js

如何在highcharts載入後調用函數?

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 Component中的函數。

+0

你怎麼包括highchart?你可以提供一個填充而不是工作代碼的例子作爲一個混帳存儲庫或作爲燼 - 旋轉? – Lux

+0

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

+0

運行循環是我的問題的答案。只需要放在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"; 
     } 
    }) 

}); 
相關問題