【问题标题】:Issue with ng-if and grid-tileng-if 和 grid-tile 的问题
【发布时间】:2016-07-15 09:00:03
【问题描述】:

当屏幕尺寸较小或较小时,我试图隐藏一个网格图块,同时我想显示一个隐藏的网格图块。这两个网格图块都包含一个 d3 图。
我的问题是在屏幕尺寸发生变化时加载图表;磁贴出现,但图表未加载。但是,如果我刷新页面,图表将加载。此代码笔说明了该问题(调整为小窗口。刷新)。
http://codepen.io/sweatherly/pen/Wxdpwx

     <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。

【问题讨论】:

    标签: javascript css angularjs angular-material


    【解决方案1】:

    问题是您的graph 指令没有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

    【讨论】:

    • 如果我使用 ng-show,grid-tile 仍会占据空间,就好像它是可见的一样。如果我不想在那里有一个空白空间,我相信我必须使用 ng-if (除非有另一种我不知道的方式)。在您的 codepen 中,第一个 grid-tile 仍然有 ng-if 而不是 ng-show。
    • 在这两种情况下,grid-tile 仍然占据空间!看看你的代码笔!
    • 使用 ng-if 加载图表失败时,grid-tile 仍然占用空间。使用 ng-show 时,即使处于“隐藏”状态,磁贴也会占用空间。 codepen.io/sweatherly/pen/QEavOB
    • 请查看更新后的答案!问题解决了!!
    • 谢谢!我花了很长时间试图自己解决这个问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 2015-05-26
    • 2013-11-26
    相关资源
    最近更新 更多