html 引用DOM元素

a7qyws3x  于 2023-11-15  发布在  其他
关注(0)|答案(1)|浏览(131)
  1. ngAfterViewInit(): void {
  2. this.getDropdownDimensions();
  3. }
  4. getDropdownDimensions() {
  5. this.dropdownHeight = this.ngSelectOuter?.nativeElement?.clientHeight;
  6. this.dropdownWidth = this.ngSelectOuter?.nativeElement?.clientWidth;
  7. }

字符串
我面临的问题是,我有条件地显示和隐藏一个基于复选框的选择,所以当我打开该页面,如果复选框被选中,则显示为一切正常,但一旦我取消选中复选框,然后选中它,我可以看到该复选框,但我无法获得其宽度。我得到一个错误,即clientWidth未定义。

tjvv9vkg

tjvv9vkg1#

带组件属性

ngSelectOuterpublic

  1. public ngSelectOuter: Elementref<unknown>

字符串
然后在模板文件中设置宽度和高度(如果没有值,可以设置默认值):

  1. <select
  2. [style.width.px]="ngSelectOuter?.nativeElement?.clientWidth || 100"
  3. [style.height.px]="ngSelectOuter?.nativeElement?.clientHeight || 100">
  4. </select>

使用Getters

或者你可以写一个get函数,并以更可读的方式编写它:

  1. public get selectOuterWidth() {
  2. return ngSelectOuter?.nativeElement?.clientWidth || 100;
  3. }
  4. public get selectOuterHeight() {
  5. return ngSelectOuter?.nativeElement?.clientHeight || 100;
  6. }
  1. <select
  2. [style.width.px]="selectOuterWidth"
  3. [style.height.px]="selectOuterHeight">
  4. </select>
展开查看全部

相关问题