2016-08-18 3 views
2

각도 2에서 다른 배열이 여러 개있는 배열을 정의 할 수 있는지 궁금합니다.배열 내의 배열을 각도 2와 Typescript로 정의하십시오.

내가이 사용하여 시작 :

export class PaymentDetails { 
    account: any[]; 
    bpNumber: number; 
} 

를하지만 나에게 내가 그것을 채울 때 난 정말 계정의 데이터에 액세스 할 수 있다는 문제를 준 그냥 무슨 뜻인지 보여줄 것이 더 쉬울 것입니다 배열, 그 안에 더 많은 배열을 원한다.

그래서 지금은이처럼 내 클래스를 정의하고 싶습니다 :

export class PaymentDetails { 
    account: [ 
     debitAccount: [ 
      { 
       debitAccountId: string; 
       debitBankCode: string; 
       debitBankName: string; 
       debitCountryCode: string; 
       debitAccountNumber: string; 
       debitAccountHolder: string; 
       debitContinous: string; 
       debitDueDate: string; 
       iban: string; 
       bic: string; 
      } 
     ], 
     ccAccount: [ 
      { 
       ccAccountId: string; 
       ccCompanyCode: string; 
       ccNumber: string; 
       ccStart: string; 
       ccExpiry: string; 
       ccDsbTransactionId: string; 
       ccCardholderName: string 
      } 
     ] 
    ]; 
    bpNumber: number; 

} 

이 전혀 가능합니까?

클래스는이 InMemoryDataService로 채워지고

export class InMemoryDataService { 
    createDb() { 
let paymentDetailsDB = [ 
     { 
     account: [ 
      { 
      debitAccount: [ 
       { 
       debitAccountId: '8736583', 
       debitBankCode: '45345', 
       debitBankName: 'KSK HGTT', 
       debitCountryCode: 'DE', 
       debitAccountNumber: '123453463', 
       debitAccountHolder: 'A Berg', 
       debitContinous: '', 
       debitDueDate: '', 
       iban: 'DE12344235', 
       bic: '324645', 
       }, 
       { 
       debitAccountId: '6567456', 
       debitBankCode: '55463453', 
       debitBankName: 'GRDFE', 
       debitCountryCode: 'DE', 
       debitAccountNumber: '00', 
       debitAccountHolder: 'A Berg', 
       debitContinous: '', 
       debitDueDate: '', 
       iban: 'DE43523453', 
       bic: '123547665', 
       } 
      ], 

      ccAccount: [ 
       { 
       ccAccountId: '23413', 
       ccCompanyCode: '254345', 
       ccNumber: '238857827368837', 
       ccStart: '2010-10-05', 
       ccExpiry: '2018-10-05', 
       ccDsbTransactionId: '235231', 
       ccCardholderName: 'Anne Berg', 
       } 
      ], 
      } 
     ], 
     bpNumber: 4711, 
     } 
    ]; 
    return {paymentDetailsDB}; 
    } 
} 
+2

유효한 자바 스크립트 코드 == 유효 타이프 코드. 이것 좀 봐 : http://stackoverflow.com/questions/966225/how-can-i-create-a-two-dimensional-array-in-javascript –

+0

코드를 보면 나는 다음을 본다 : (1) 당신의 수업 정의에 "내 배열에 속성이 있어야합니다."하지만 (2) paymentDetailsDB를 채우는 코드는 "각 배열 항목에 하위 배열이 있습니다"라고 선언합니다. JS는 # 1을 허용하지 않지만 # 2는 완벽하게 유효합니다. (mxii는 아래 # 2 구현 예를 작성했습니다.) –

답변

3

다음과 같아야합니다 귀하의 정의 :

익명 형식의 변형 :

export class PaymentDetails { 
    accounts: 
    { 
    debitAccounts: 
    { 
     debitAccountId: string; 
     debitBankCode: string; 
     debitBankName: string; 
     debitCountryCode: string; 
     debitAccountNumber: string; 
     debitAccountHolder: string; 
     debitContinous: string; 
     debitDueDate: string; 
     iban: string; 
     bic: string; 
    }[], 

    ccAccounts: 
    { 
     ccAccountId: string; 
     ccCompanyCode: string; 
     ccNumber: string; 
     ccStart: string; 
     ccExpiry: string; 
     ccDsbTransactionId: string; 
     ccCardholderName: string 
    }[], 

    bpNumber: number; 
    }; 
} 

라는 이름의 유형 (당신이 사용한다! : ])

export class DebitAccount { 
    Id: string; 
    BankCode: string; 
    BankName: string; 
    CountryCode: string; 
    Number: string; 
    Holder: string; 
    Continous: string; 
    DueDate: string; 
    iban: string; 
    bic: string; 
} 

export class CcAccount { 
    Id: string; 
    CompanyCode: string; 
    Number: string; 
    Start: string; 
    Expiry: string; 
    DsbTransactionId: string; 
    CardholderName: string 
} 

export class Account { 
    debitAccounts: DebitAccount[]; 
    ccAccounts: CcAccount[]; 
    bpNumber: number; 
} 

export class PaymentDetails { 
    account: Account[]; 
} 
+0

은 최종 결과가 동일하거나 (적어도 json 구조가 콘솔에 표시 될 때 동일합니다) . 그러나 이것은 더 우아하고 이해하기 쉬운 방법입니다. 내 초기 문제는 내가 잘못 배열과 객체에 액세스하고 있다는 것이 었습니다 ...이 게시물은 많은 도움이되었습니다. http://stackoverflow.com/questions/11922383/access-process-nested-objects-arrays-or -json –

0

중첩 배열은 다음과 같이 정의 될 수있다 :

items = [ 
    {name:'xyz', subMenuItem:[{name:'abc'}, {name:'cde'}], icon:'home'}, 
    {name:'pqr', subMenuItem:[{name:'abc'}, {name:'cde'}], icon:'home'}, 
    ];