2016-07-02 33 views
0

请帮助我以下几点。如何根据窗口(重新)大小和阵列长度更改ng级

我的HTML:

<div id="button1" ng-hide="videopagepanel.indexOf('l') >= 0" class="col-md-1"> 
    <a ng-click="videopagepanel = videopagepanel + 'l';" ></a> 
</div> 

<div id="button2" ng-show="videopagepanel.indexOf('l') >= 0" class="col-md-3">   
    <a ng-click="videopagepanel = videopagepanel.indexOf('l') >= 0?videopagepanel.replace('l', ''):'l' + videopagepanel"></a> 
</div> 


<div id="page-content" ng-class="'col-md-' + (colnrpagecont - videopagepanel.length)"> 
    Some content 
</div> 

我的jQuery:

$(window).resize(function ($window) { 

    if ($window.innerWidth < 992) { 
     $scope.videopagepanel = 'lr'; 
    } 

    else if ($window.innerWidth < 1200) { 
     $scope.videopagepanel = $scope.videopagepanel.replace('r', ''); 
     $scope.colnrpagecont =$scope.videopagepanel.length===1?10:11; 

    } 

}); 

如果我已经调整窗口例如1100px,初始状态是#BUTTON2显示了COL-MD -3和#page-content div的列大小为col-md-9。如果我从这个状态点击#按钮2,它会消失,并且#按钮1显示出来与col-md-1。问题是#页面内容列不会调整到col-md-11。

什么问题?看起来,角度不会将更新推送到jQuery条件或范围。

非常感谢您的帮助,因为我一直在为这个问题苦苦挣扎的日子和时间!

回答

0

使用window$(window)而不是$window(我相信是未定义的)。

此外,对于性能问题,最好是做

$scope.videopagepanel = "l"; 

代替

$scope.videopagepanel = $scope.videopagepanel.replace('r', ''); 
+0

感谢您的答复。那不幸的是没有工作。 – Atilla

+0

我相信ng-class不会再一次重新评估。在修改$ scope.videopagepanel后尝试$ scope。$ apply()。 –

+0

我应该在哪里放置$ scope。$ apply()? – Atilla

相关问题