当前位置: 首页 > 面试题库 >

在angularjs中将一个div的高度设置为另一个div

胡高朗
2023-03-14
问题内容

我是角度新手:-)我只是想将一个div的尺寸设置为另一个,请给予任何帮助。

 <div class="front">
     <img ng-src="{[galery.pages[0].thumbnailUrl]}" >
</div>
<div ng-style="galery.pages[1] ? '' : setBackDimensions(); " ></div>

在控制器中,我添加了:

    $scope.setBackDimensions = function() {
        var imgHeight = $(".front").height;
        var imgWidth = $(".front").width;
        return {
            'width': imgWidth + 'px';
            'height': imgHeight + 'px';
        }
    };

返回宽度和高度,但未应用


问题答案:

我已经为您的问题创建了解决方案。首先,我将向您解释我做了什么以及为什么这样做。

Angular中的一项基本准则是,应避免在控制器中处理div等DOM元素,而应在指令中执行与DOM元素有关的大多数操作。

指令允许您将功能绑定到特定的dom元素。在这种情况下,您要将函数绑定到第一个div,该函数将获取元素的高度和宽度,并将其公开给另一个元素。我在下面评论了我的代码以显示我是如何实现的。

app.directive('master',function () { //declaration; identifier master
    function link(scope, element, attrs) { //scope we are in, element we are bound to, attrs of that element
      scope.$watch(function(){ //watch any changes to our element
        scope.style = { //scope variable style, shared with our controller
            height:element[0].offsetHeight+'px', //set the height in style to our elements height
            width:element[0].offsetWidth+'px' //same with width
          };
      });
    }
      return {
        restrict: 'AE', //describes how we can assign an element to our directive in this case like <div master></div
        link: link // the function to link to our element
      };
});

现在,我们的范围变量样式应该包含一个对象,该对象具有“主”元素的当前宽度和高度,即使主元素的大小发生了变化。

接下来,我们希望将此样式应用于另一个我们可以实现的元素,如下所示:

 <span master class="a">{{content}}</span>
 <div class="b" ng-style="style"></div>

如您所见,上面的span是div中的master元素,是我们的“ slave”,其宽度和高度始终与master相同。 ng- style="style"意味着我们将范围变量中包含的css样式(称为样式)添加到范围中。

我希望您理解为什么以及如何获得此解决方案,这是一个带有演示的pnkr,演示了我的解决方案。



 类似资料:
  • 问题内容: 我想将居中。但是,事实并非如此。我只想找出原因以及如何使其居中。 问题答案: 您需要设置容器的宽度。(不起作用) MDN的CSS参考说明了这一切。

  • 问题内容: 我想将添加到另一个div内的div居中。 这是我当前正在使用的CSS。 如您所见,我现在使用的方法取决于width和height的值。如果width / height发生变化,我将不得不修改and值。是否有任何通用解决方案可用于始终将居中对齐它的大小? 我发现使用可以将innerDiv水平分配到中间,但是垂直分配中间呢? 问题答案: tl; dr 垂直对齐中间作品,但是您将不得不在父元

  • 问题内容: 我搜索了其他问题,尽管这个问题似乎与其他几个问题相似,但到目前为止,我所看到的任何问题似乎都无法解决我遇到的问题。 我有一个div,其中包含许多其他div,每个div都向左浮动。这些div分别包含照片和标题。我要的是使照片组位于包含div的中心。 从下面的代码中可以看到,我已经尝试在父div上同时使用和,并且还在照片后添加了(如另一个主题中所述)。似乎没有什么改变。 谢谢。我感谢任何建

  • 问题内容: 在将一个人叠加到另一个人上时,我需要帮助。 我的代码如下所示: 不幸的是,我不能将或嵌套在第一个内部。 如图所示,它必须是两个单独的,但是我需要知道如何将放置在上方和最右侧,并以的顶部为中心。 问题答案: 我建议使用来了解和子元素。

  • 关于Spring bean配置,我有两个主要问题:1。当我从应用程序上下文检索bean时,我通过属性文件读取的属性并不持久化。2.我很难弄清楚如何将bean的值设置为另一个bean-在下面的示例中,我试图将Plan bean的度量属性设置为某个bean。 我有两个小班,一个度量,和一个更大的计划: 但是当我尝试访问这个bean时,我在主应用程序中得到了默认值或空值,这表明这些属性没有持久化:

  • 问题内容: 我的HTML代码只是将页面分为两列,分别为65%,35%。 在中 ,我有可变数据;在中 ,我有固定数据。即使两个具有两个不同的数据集,我也需要它们以相同的高度显示,以便背景色看起来好像填充了包含两者的框。当然,问题出在 ,因为其高度取决于当前显示在其中的数据量。 如何确保两列的高度始终相等? 问题答案: 将其包裹在包含背景色的包含div中,并在“列”之后添加一个清除div。 更新以解决