2016-07-14 47 views
0

我想在屏幕尺寸小或更小時隱藏網格圖塊,同時我想顯示隱藏的網格圖塊。這兩個網格圖塊都包含一個d3圖形。
我的問題是在屏幕尺寸改變時加載圖形;該圖塊出現,但圖形不加載。但是,如果我刷新頁面,圖形將加載。這個問題在這個codepen上進行了說明(調整爲小窗口刷新)。
http://codepen.io/sweatherly/pen/Wxdpwxng-if和grid-tile的問題

 <md-grid-tile ng-if="$mdMedia('gt-sm')" md-rowspan="2" md-colspan="9" md-colspan-md="6" md-colspan-sm="4" md-colspan-xs="1"> 
     <md-card class="graph-card dark-cards" layout-fill> 
     <graph></graph> 
     </md-card> 

    </md-grid-tile> 

獲取初始負載工作,我不得不使用$的document.ready({});.我不知道如何將其應用於頁面調整大小/ ng-if。

回答

2

問題是您的指令沒有link函數。因爲,$document.ready返回undefined

link: $document.ready(function loadGraph() { 
    //Code here 
}); 

您需要更改到:

link: function() { 
    $document.ready(function() { 
     //Your Code here  
    }); 
} 

請看看這個演示:http://codepen.io/anon/pen/akEwok

+0

如果我用NG-顯示網格瓷磚仍然佔有空間就好像它是可見的。如果我不想留下一個空白空間,我相信我必須使用ng-if(除非有另一種我不知道的方式)。在你的codepen中,第一個grid-tile仍然有ng-if而不是ng-show。 – sweatherly

+0

在這兩種情況下,網格瓷磚仍然佔據空間!檢查你的codepen! –

+0

當使用ng-if時,圖形無法加載時,網格圖塊仍佔用空間。使用ng-show時,即使在「隱藏」狀態下,圖塊也會佔用空間。 http://codepen.io/sweatherly/pen/QEavOB – sweatherly