使用打字稿中的 angular 2 个指令将自定义控件的值绑定到 html 控件
Binding a value from custom control to html control using angular 2 directives in typescript
我创建了一个自定义控件指令 "my-text-box",在这个指令中我使用 html 控件 <input>
,我需要将值从我的自定义控件传递到 html 输入控件。在 angular1 中,我只是像 <my-text-box id="1" name="Box 1">
使用指令中范围变量的自定义属性,我将值分配给 html 控件,如 <input type="text" id="{{id}}" name={{name}} >
我如何使用这种情况在 angular 2.
这是我的示例代码:
AppComponent.ts
import {Component} from '@angular/core';
import {TextBoxComponent} from './TextBoxComponentDirective';
@Component({
selector: 'my-app',
template: '<h1>{{title}}</h1> <my-text-box id="66" name="MyText1"></my-text-box>',
directives:[TextBoxComponent]
})
export class AppComponent {
title="Sample TextBox";
}
TextBoxComponentDirective.ts
import {Component,Input,Directive} from '@angular/core';
@Component({
selector:'my-text-box',
templateUrl: './TextBoxTemplate.html',
})
export class TextBoxComponent {
@Input() id;
}
TextBoxTemplate.html
<input type="text" [name]="name" [id]="id"/>
您可以为此使用 @Input():
@Component({
selector: 'my-text-box',
template: `
<input type="text" [id]="id" [name]="name" >
`
})
export class MyTextBoxComponent {
@Input() id;
@Input() name;
}
在您的父组件中,您现在可以像这样使用它:
<my-text-box id="1" name="Box 1">
或者如果您需要绑定到变量:
<my-text-box [id]="someId" [name]="theBoxName">
Working Plunker for example usage
我创建了一个自定义控件指令 "my-text-box",在这个指令中我使用 html 控件 <input>
,我需要将值从我的自定义控件传递到 html 输入控件。在 angular1 中,我只是像 <my-text-box id="1" name="Box 1">
使用指令中范围变量的自定义属性,我将值分配给 html 控件,如 <input type="text" id="{{id}}" name={{name}} >
我如何使用这种情况在 angular 2.
这是我的示例代码:
AppComponent.ts
import {Component} from '@angular/core';
import {TextBoxComponent} from './TextBoxComponentDirective';
@Component({
selector: 'my-app',
template: '<h1>{{title}}</h1> <my-text-box id="66" name="MyText1"></my-text-box>',
directives:[TextBoxComponent]
})
export class AppComponent {
title="Sample TextBox";
}
TextBoxComponentDirective.ts
import {Component,Input,Directive} from '@angular/core';
@Component({
selector:'my-text-box',
templateUrl: './TextBoxTemplate.html',
})
export class TextBoxComponent {
@Input() id;
}
TextBoxTemplate.html
<input type="text" [name]="name" [id]="id"/>
您可以为此使用 @Input():
@Component({
selector: 'my-text-box',
template: `
<input type="text" [id]="id" [name]="name" >
`
})
export class MyTextBoxComponent {
@Input() id;
@Input() name;
}
在您的父组件中,您现在可以像这样使用它:
<my-text-box id="1" name="Box 1">
或者如果您需要绑定到变量:
<my-text-box [id]="someId" [name]="theBoxName">
Working Plunker for example usage