增加焦点输入的宽度为angular2
发布时间:2020-12-17 17:06:07 所属栏目:安全 来源:网络整理
导读:我是angular2的新手,我有一个问题,我的输入有一个属性autoGorw它是一个自定义指令,有两个事件(焦点)和(模糊),onFocus()我想增加输入大小和onBlur()我想要将大小减小到默认大小,事件一直在触发并在控制台中显示结果,但输入大小没有增加,我的控制台中没有任何
我是angular2的新手,我有一个问题,我的输入有一个属性autoGorw它是一个自定义指令,有两个事件(焦点)和(模糊),onFocus()我想增加输入大小和onBlur()我想要将大小减小到默认大小,事件一直在触发并在控制台中显示结果,但输入大小没有增加,我的控制台中没有任何错误,我不知道我缺少什么.
对不起,我在Plunker尝试了现场演示,让你很容易理解,但无法制作一个. 这是我的代码 自动grow.directive.ts import {Directive,ElementRef,Renderer} from '@angular/core' // ElementRef => Gives access to host element // Renderer => Gives access to modify that element @Directive({ selector: '[autoGrow]',host:{ '(focus)' : 'onFocus()','(blur)' : 'onBlur()' } }) export class AutoGrowDirective{ constructor(private el : ElementRef,private renderer : Renderer){ } onFocus(){ console.log("Triggered !"); // its working upto this line. this.renderer.setElementStyle(this.el.nativeElement,'Width','500'); } onBlur(){ this.renderer.setElementStyle(this.el.nativeElement,'120'); } } courses.component.ts import {Component} from '@angular/core' import {AutoGrowDirective} from './auto-grow.directive' @Component({ selector:"courses",template:` <h2>This is Courses component</h2> <p>{{ title }}</p> <input type="text" autoGrow /> `,directives: [AutoGrowDirective] }) export class CoursesComponent{ title = 'This is the title of Courses Page!'; } app.component.ts import { Component } from '@angular/core'; import {CoursesComponent} from './courses.component'; @Component({ selector: 'my-app',template: '<h1>Hello Angular!</h1><courses></courses>',directives:[CoursesComponent] }) export class AppComponent { } HTML 在html里面的身体我有选择器 <my-app>Loading Please wait...</my-app> 解决方法
我想你只是在’500px’中缺少px而’width’应该是小写的.
我会这样做: @Directive({ selector: '[autoGrow]',}) export class AutoGrowDirective { @HostBinding('style.width.px') width:number = 120; @HostListener('focus') onFocus() { this.width=500; } @HostListener('blur') onBlur(){ this.width = 120; } } Plunker example (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |