有没有更好的方法来改变元素高度使用角度js?
我在做这样的事情:
function HomeCtrl ($scope) { $('.banner').css('height',($(window).height()) - $('.header').outerHeight()); }
解决方法
一起避免jQuery.使用指令,您可以访问元素并对其进行调整.作为一般的经验法则,如果您引入了jQuery来帮助您进行DOM操作,则可能会导致角度错误.没有很多的上下文,很难建议一个比你在这里更好的实现.
这在某种程度上取决于什么(和哪里).header是,但这是我的想法:
JScript的:
var myApp = angular.module('myApp',[]); myApp.directive('banner',function ($window) { return { restrict: 'A',link: function (scope,elem,attrs) { var winHeight = $window.innerHeight; var headerHeight = attrs.banner ? attrs.banner : 0; elem.css('height',winHeight - headerHeight + 'px'); } }; });
HTML:
<div banner="250" class="banner">I'm a banner!</div>
因为我不知道头是什么,我只是假设它被传入一个属性.我最好的猜测是抓住它的高度,并将其存储在控制器范围内,然后由横幅观看.这样做也会有所回应.