私は、特定のサイズ以下で画面を縮小してテーブル行をクリックすると、そのテーブル行の他の項目を表示する機能があります。 (左の白い画面)。ウィンドウのサイズ変更時にng-classを変更するにはどうすればよいですか?
私は、ウィンドウを展開したときそれから私は、すべてのテーブルの行が正常に戻るにしたいが、私はそれがすでに開いている場合、それは閉じませんバグを持っています。
私は真/偽に$ scope.showIt変数を設定しようとしたが、それが最初の$のscope.showIt値の反対だ場合の効果を持っているようです。画面が一定の大きさであれば、どのようにすべてのng-classをどのように変更すればよいですか?
これは私のhtmlです:
<tr class="table-body "ng-repeat="service in services | orderBy:myOrderBy | filter:search">
<td align="center" valign="middle" ng-click="showIt = dropDetails(showIt)" ng-class="{'name-show':showIt, 'name-show-disabled':!showIt}">{{ service.name }}</td>
<td ng-class="{'show':showIt, 'show-disabled':!showIt}">{{ service.description }}</td>
<td ng-class="{'show':showIt, 'show-disabled':!showIt}">{{ service.prices }}</td>
</tr>
そして、私のコントローラで:
$scope.dropDetails = function(showIt){ //This function works well.
console.log(window)
console.log(window.innerWidth)
if(window.innerWidth < 760){
return !showIt;
}else{
return showIt;
}
}
var w = angular.element($window);
var resizeId=0;
$scope.showIt = true;
w.bind('resize ', function (a) {
clearTimeout(resizeId);
resizeId = setTimeout(function(){
if(w[0].innerWidth < 760){
}else{
$scope.showIt = true; //Does nothing.
$scope.$apply();
}
}, 500);
})
'$ scope.showIt'を' false'に設定することはありません。そのタイプミスですか? –
@AdnanUmer 'dropDetails'関数は、ng-clickでfalseに設定します。 – Squirrl
' if(window.innerWidth <760){ return!showIt; } ' – Squirrl