Angular 2 模型绑定到简单类型(字符串)不起作用
Angular 2 Modelbinding to simpletype (string) not working
我有一个带有字符串字段输入的简单组件:
import {Component, Input} from 'angular2/core';
@Component({
selector: 'mundo-input',
template: `
<input class="form-control" [(ngModel)]="zeit" />
`
})
export class MundoInputComponent {
@Input() zeit: string;
}
我是这样使用这个组件的:
<mundo-input [(zeit)]="myzeit"></mundo-input>
来自外部组件的 myzeit-属性 被正确注入。当我手动更改值并在外部组件上按保存时,myzeit-属性 具有旧值。
我将 zeit 的类型从字符串更改为 Hero class(就像在 NG2 教程中一样)并将输入的绑定更改为 zeit.name。双向数据绑定有效。
是否可以从外部组件绑定到 属性 类型的字符串?还是仅适用于复杂类型(classes)?
您需要向组件添加输出才能利用双向绑定:
@Component({
selector: 'mundo-input',
template: `
<input class="form-control" [ngModel]="zeit"
(ngModelChange)="onChange($event)" />
`
})
export class MundoInputComponent {
@Input() zeit: string;
@Output() zeitChange:EventEmitter<string> = new EventEmitter();
onChange(val) {
this.zeitChange.emit(val);
}
}
按照惯例,输出必须有 zeitChange
才能使用快捷方式 [(zeit)]="myzeit"
:
<mundo-input [(zeit)]="myzeit"></mundo-input>
在您的情况下,您只对 zeit
参数使用单向绑定。
看到这个 plunkr:https://plnkr.co/edit/snaM4y?p=preview。
我有一个带有字符串字段输入的简单组件:
import {Component, Input} from 'angular2/core';
@Component({
selector: 'mundo-input',
template: `
<input class="form-control" [(ngModel)]="zeit" />
`
})
export class MundoInputComponent {
@Input() zeit: string;
}
我是这样使用这个组件的:
<mundo-input [(zeit)]="myzeit"></mundo-input>
来自外部组件的 myzeit-属性 被正确注入。当我手动更改值并在外部组件上按保存时,myzeit-属性 具有旧值。
我将 zeit 的类型从字符串更改为 Hero class(就像在 NG2 教程中一样)并将输入的绑定更改为 zeit.name。双向数据绑定有效。
是否可以从外部组件绑定到 属性 类型的字符串?还是仅适用于复杂类型(classes)?
您需要向组件添加输出才能利用双向绑定:
@Component({
selector: 'mundo-input',
template: `
<input class="form-control" [ngModel]="zeit"
(ngModelChange)="onChange($event)" />
`
})
export class MundoInputComponent {
@Input() zeit: string;
@Output() zeitChange:EventEmitter<string> = new EventEmitter();
onChange(val) {
this.zeitChange.emit(val);
}
}
按照惯例,输出必须有 zeitChange
才能使用快捷方式 [(zeit)]="myzeit"
:
<mundo-input [(zeit)]="myzeit"></mundo-input>
在您的情况下,您只对 zeit
参数使用单向绑定。
看到这个 plunkr:https://plnkr.co/edit/snaM4y?p=preview。