【发布时间】:2013-01-20 03:25:45
【问题描述】:
我是 AngularJS 新手。我想创建高度取决于窗口高度的网格(使用ng-grid),即。 $('.gridStyle').height($(window).height() - 100);
我已经写了指令:
app.directive('resize', function($window) {
return function(scope, element) {
function applyHeight() {
scope.height = $window.innerHeight;
$('.gridStyle').height(scope.height - 100);
}
angular.element($window).bind('resize', function() {
scope.$apply(function() {
applyHeight();
});
});
applyHeight();
};
});
这在我调整浏览器窗口大小时效果很好,但在第一次加载网站时未应用样式。我可以在哪里放置代码来初始化高度?
【问题讨论】:
-
尝试在指令底部使用 $timeout 、 $timeout(applyHeight)。
-
$timeout(applyHeight)更改样式但不幸的是网格没有刷新 -
仅供参考,如果您的应用程序不是很小,将
$apply绑定到'resize'事件是一个糟糕的主意。 -
作为对@Fresheyeball 信息的补充,
resize在调整窗口大小时每秒可触发 20-50 次以上。小心使用。
标签: javascript angularjs