2017-04-20 1 views
0

저는 Angular2/Typescript의 멍청한 짓이며 저는 첫 번째 응용 프로그램을 작성하고 있습니다.Angular2/Typescript - 속성 이름 첫 글자가 대문자로 변경됩니다.

나는이 간단한 클래스의 배열이 있습니다

클래스

export class OffertRegion { 

    public idOffert: number; 
    public idOffertRegion: number; 
    public Region: string; 
    public intOrder: number; 

    constructor(values: Object = {}) { 
     Object.assign(this, values); 
    } 
} 

그리고이 배열에 새 OffertRegion 클래스를 밀어 기능을 인 HTML에 배치 된 버튼을 사용자가 클릭 한 번 페이지 성분 :

do_addRegion() 
    { 
    var r = new OffertRegion(); 
    r.Region = this.FormOffertDetail.value.RegionName; 
    alert(r.Region); 
    r.idOffert = this.offert.idOffert; 

    this.offert.Regions.push(r); 
    console.log(this.offert.Regions); 
    } 

I은 ​​ 3 영역을 갖는 예를로드가 I do_a을 실행하면 ddRegion(), 결과이되는 기록 this.offert.Regions : 당신이 볼 수 있듯이

CONSOLE.LOG 출력은 ​​

Console.Log result

, 클래스 OffertRegion의 미리보기 항목은 속성 지역에있다 소문자의 첫 번째 문자. 대신 새 항목 (위치 4)은 첫 번째 문자가 대문자 인 속성을가집니다.

이렇게하면 html 템플릿의 데이터를 렌더링 할 때 약간의 문제가 발생합니다.

왜 이런 일이 발생합니까? 올바른 방법으로 문제를 해결하는 방법은 무엇입니까?

감사합니다.

답변

1

나는 당신이 제공하는 희소 한 정보로만 추측 할 수 있습니다. 처음 세 개의 객체는 소문자로 시작하는 서버에서로드한다고 가정합니다. 그들은 어떻게 든 Typescript 유형을 따르지 않고 배열로 만듭니다. 그런 다음 do_addRegion을 실행하면 두 개의 등록 정보 만있는 인스턴스가 생성되며 그 중 하나는 대문자로 시작하는 이름을 갖습니다.

Typescript 형식이 약간 이상합니다. 이름이 소문자로 시작하는 세 개의 속성과 Region이라는 홀수 속성이 있습니다. 그것은 소문자 이름으로 이름을 일관성 것이다 :

public region: string; 

문제에 깊이 파고하려면 배열의 처음 세 항목을 작성 부하 또는 코드를 표시해야합니다.

+0

알겠습니다. 3 가지 첫 번째 요소는 .Net으로 작성된 webapi를 호출하는 게시/구독에서로드됩니다. webapi가 소문자로 속성의 첫 번째 문자로 변환됩니까? – DarioN1

관련 문제