【发布时间】:2017-12-11 17:41:33
【问题描述】:
我正在尝试创建一个指令,以便在用户键入时将输入字符转换为大写,但我开始相信这是不可能的。
我有什么: 大写.directive.ts:
import {
Directive,
Input,
Output,
EventEmitter,
OnInit
} from '@angular/core';
@Directive({
selector: '[UpperCaseInput]',
host: {
'[value]': 'UpperCaseInput',
'(input)': 'format($event.target.value)'
}
})
export class UppercaseInput implements OnInit {
@Input() uppercase: string;
@Output() uppercaseChange: EventEmitter < string > = new EventEmitter < string > ();
constructor() {}
ngOnInit() {
this.uppercase = this.uppercase || '';
this.format(this.uppercase);
}
format(value) {
value = value.toUpperCase();
this.uppercaseChange.next(value);
}
}
大写.directive.module.ts:
import {
NgModule
} from '@angular/core';
import {
UppercaseInput
} from './uppercase.directive';
@NgModule({
declarations: [UppercaseInput],
imports: [],
exports: [UppercaseInput]
})
export class UppercaseInputModule {}
然后我在我的 app.import.ts 中导入模块:
import {
UppercaseInputModule
} from '../directives/uppercase.directive.module';
...
export const MODULES = [UppercaseInputModule];
在我的 app.module.ts 中:
@NgModule({
bootstrap: [IonicApp],
declarations: [
...
],
imports: [
...,
MODULES,
SharedModule
],
...
})
当我尝试这样的事情时:
<input type="text" class="form-control" ([UpperCaseInput])='user.name' placeholder="Your name here" />
我得到: 错误:模板解析错误: 无法绑定到“大写输入”,因为它不是“输入”的已知属性。
那么,我在这里做错了什么?我错过了什么?
【问题讨论】: