如何在Angular 4中绑定private
属性?
export class newItem{
private id: number;
private description: string;
private insertDate: any;
get getId() : number {
return this.id;
}
set setId(name : number) {
this.id = name;
}
get getDescription() : string {
return this.description;
}
set setDescription(description : string) {
this.description = description;
}
get getInsertDate() : string {
return this.insertDate;
}
set setInsertDate(insertDate : string) {
this.insertDate = insertDate;
}
这里
它抛出Cannot assign to 'getInsertDate' because it is a constant or a read-only property.
答案 0 :(得分:1)
答案是将其更改为:
private _id: number;
get id() : number {
return this.id;
}
set id(name : number) {
this.id = name;
}
答案 1 :(得分:0)
“如何在Angular 4中绑定私有属性?”
无法将private
变量绑定到模板(在您的情况下使用[(ngModel)]
)。您应该使用public
变量。
答案 2 :(得分:0)
模板:
<input [(ngModel)]="testVar" #textBox type="text">
<p>This is the value of testVar : {{testVar}}</p>
组件:
export class MyComponent {
private testVar: string = "Test this";
}
如果你想要双重绑定并使用getter和setter,那么你的get和set必须具有相同的名称(模板中使用的名称)
属性不需要公开,以允许与ngModel
进行数据绑定。他们可以完全私密。
正如在其他答案中已经说过的那样,在你的情况你根本不需要吸气器和设置器!。
最好避免不必要的代码,为了你自己的心灵理智!
如果您担心封装,请不要:将您的模板视为组件的一部分。模板完全可以使用组件私有字段(除非你需要,否则不需要通过get / set访问器)