【发布时间】:2019-08-18 03:42:51
【问题描述】:
我正在尝试根据元素的子元素数量以编程方式计算和设置元素的 max-height 样式。我必须在四个单独的元素上执行此操作,每个元素都有不同数量的子元素,所以我不能只创建一个计算属性。我已经有了计算函数中max-height 的逻辑,但我无法将模板中的元素传递给函数。
我尝试了以下解决方案,但没有成功:
<div ref="div1" :style="{ maxHeight: getMaxHeight($refs.div1) }"></div>
这不起作用,因为在我将$refs传递给函数时尚未定义它。试图将
this或$event.target传递给getMaxHeight()。这也不起作用,因为this没有引用当前元素,并且没有事件,因为我不在v-on事件处理程序中。
我能想到的唯一其他解决方案是创建四个计算属性,每个调用 getMaxHeight() 和 $ref,但如果我可以通过使用不同参数调用的单个函数来处理它,它会更容易维护。如果可能的话,我想从模板中传递元素本身。有谁知道这样做的方法,或更优雅的方法来解决这个问题?
【问题讨论】:
-
考虑自定义指令 - 您可以简单地访问其中的绑定元素。 vuejs.org/v2/guide/custom-directive.html
标签: javascript vue.js vuejs2