2016-10-03 4 views
4

:각도 2 @Input 번호 문제 나는 다음과 같은 구성 요소가

<component value="3"></component> 

그리고 구성 요소 코드는 다음과 같습니다

3 
string 

하지만 바인딩 경우 :

private _value:number; 

    get value(): number { 
    return this._value; 
    } 

    @Input() 
    set value(value: number) { 
    console.log(value); 
    console.log(typeof value); 
    this._value = value; 
    } 

로그는 같은 속성 :

<component [value]="variable1"></component> 

variable1이 유형 번호 인 경우이 경우 숫자가 표시됩니다.

3 
number 

필자는 타이프 스크립트에는 어떤 마법도 없다는 것을 알고 있지만 이것이 올바른 행동입니까? 각도 입력 데코레이터가 변환을 수행해야합니까?

저는 setters에서 유형을 확인하고 있지만 typescript가 컴파일 될 때 오류가 발생합니다.

gettes 및 setter에서 any 유형을 사용하고 싶지 않습니다.

우아한 해결책이 있습니까?

+0

참조하십시오 Plunker 작업도 http://stackoverflow.com/questions/39817094/input-attribute-does-not-receive-data/ 39817212 # 39817212 – yurzui

답변

4

대괄호 []으로 바인딩 할 때 값은 개체에 직접 바인딩됩니다.

속성 바인딩을 사용하면 따옴표 사이의 값이 문자열로 처리됩니다.

Maybe have a look at the docs.


사용 예

+0

나는이 모든 것을 알고 있으며 대답은 이것과 관련이 없다. – Serginho

+0

Angular 2가 작동하는 방식입니다. 문서에서도 알려줍니다. 대괄호 (속성 바인딩)가 없으면 실제 변수에 바인딩하지 않고 문자열 해석 만하면됩니다. 그럼 뭐가 문제 야? – rinukkusu

+0

입력 장식 자에서 항상 유형 번호를 얻는 방법은 무엇입니까? – Serginho

관련 문제