angular - 如何确保 angularjs 文本框适合文本中输入的内容?

标签 angular

我有 3 个 HTML 文本框,每个文本框的初始宽度均为 30px。我想做到这一点,如果有人在其中一个文本框内键入超出文本框宽度的文本,则所有三个文本框的宽度都会扩展以匹配最大文本框的大小。执行此操作的最佳方法是什么?

最佳答案

@Component({
  selector: 'my-app',
  styles: [`#size
{
    position: absolute;
    visibility: hidden;
    height: auto;
    width: auto;
    white-space: nowrap; /* Thanks to Herb Caudill comment */
}`]
  template: `
  <div id="size" #size>{{text}}</div>
  <input #inp [(ngModel)]="text" 
              (ngModelChange)="width=size.clientWidth" 
              [style.width.px]="width > 50 ? width +10 : 60">
  `,
})

Plunker link

它使用隐藏的 <div>需要与输​​入元素相同的字体样式,每次更改时,输入都会更新以匹配隐藏的大小 <div>包含相同的文本。

另见 Calculate text width with JavaScript

关于angular - 如何确保 angularjs 文本框适合文本中输入的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40314031/

相关文章:

Angular ChangeDetectionStrategy.OnPush 和 Observables 在 ngAfterViewInit Hook 内不起作用

angular - 装饰器不支持函数调用,但在 'ɵmakeDecorator' 中调用了 'NgModule' 'NgModule' 调用 'ɵmakeDecorator'

javascript - 是否可以使用自定义组件或任何其他方式自定义 ng2-smart-table 的列标题?

angular - Angular 5 中使用 rxjs 进行持久订阅

javascript - 一个可观察的多个订阅者 Rxjs/Angular 共享不起作用

javascript - 处理 http 调用的响应 : filter is not a function

angular - 在 angular 2/angular 4 中集成 recaptcha

javascript - Angular 6 : Prevent Browser Tooltip to show HTML tags in "innerHtml"

validation - Angular 2 路由参数验证

angular - 不是已知元素(迁移到 Angular 9 后)