2015-12-10 36 views
2

我有使用@input類字段裝飾以及getter和setter一個角2成分如下:重複的標識符錯誤與Getter和Setter

import {Component, Input, Output, EventEmitter,FORM_DIRECTIVES, CORE_DIRECTIVES} from 'angular2/angular2'; 
 

 
@Component({ 
 
    selector: 'binding-test3', 
 
    templateUrl: './components/binding-test/binding-test3.html', 
 
    directives: [CORE_DIRECTIVES,FORM_DIRECTIVES] 
 
}) 
 

 
export class BindingTest3 { 
 

 
    @Input() value: string; 
 
    @Output() valueChange:EventEmitter = new EventEmitter(); 
 

 
    private _value: string; 
 

 
    get value() { 
 
     console.log('getting value in BindingTest3: ',this._value); 
 
     return this._value; 
 
    } 
 

 
    set value(value) { 
 
     console.log('setting value in BindingTest3: ',value); 
 
     this._value = value; 
 
     this.valueChange.next(value); 
 
    } 
 
}

該代碼正確運行但存在三個編譯器錯誤:

app/components/binding-test/binding-test3.ts(15,14):錯誤TS2300:重複的標識符'值'。 app/components/binding-test/binding-test3.ts(20,9):錯誤TS2300:重複的標識符'值'。 app/components/binding-test/binding-test3.ts(25,9):錯誤TS2300:重複的標識符'值'。

關於如何解決這個問題的任何想法?

回答

4

合併@input與設定:

@Input() set value(value:string) { ... } 

有這樣的Attribute Directives開發人員指南頁面上的例子:

@Input() set defaultColor(colorName:string) {...}