Как я могу добавить поле в виде модели из другой отдельной модели в угловых? - PullRequest
0 голосов
/ 17 марта 2019

У меня есть список данных, который я хочу выбрать из него объект и добавить его в другой объект:

это первая модель:

export class missionnaire {    
    cin : String ;      
    graade :grade;  
    constructor(cin? : String ,graade ?:grade) {
        this.graade= new grade() ;   
    }; 
}

и это другая модель:

export class grade {
    constructor(public code? : String ,
        public liba? : String , 
        public libfr?  :String ) {} 
}

и в "missionaire.html" у меня есть:

 <form [formGroup]="missionnaireF">
      <div class="form-group col-md-12">
           <label> grade </label>
           <input type = "text" class="form-control" id="search3" name="search3" list="list3" formControlName="graade" >
           <datalist id="list3">
           <option *ngFor="let grade of grades" data-value="grade" [value]="grade.liba">
           </datalist>
           </div>
   
   <div class="form-group col-md-12">
      <label >cin </label>
      <input type="text" class="form-control" formControlName="cin" name="cin"  maxlength="8">
   </div>
</form>

и это запрос json post, который отлично работает сзади:

{
        "cin": 88663344,
        "grade": {
            "idgrade": 1,
            "libGradeAr": "grade",
            "libGradeFr": "grade",
            "codeGrade": 1
        }
}

1 Ответ

0 голосов
/ 17 марта 2019
interface Grade {
    idgrade?: number;
    libGradeAr?: string;
    libGradeFr?: string;
    codeGrade?: number;
}
class Missionnaire {  
    grade: Grade;
    constructor(grade?: Grade, public cin?: number) {
        this.grade = grade;
    }
}
let obj = {
        "cin": 88663344,
        "grade": {
            "idgrade": 1,
            "libGradeAr": "grade",
            "libGradeFr": "grade",
            "codeGrade": 1
        }
}
let grd: Grade = obj.grade;
console.log(grd)
let x = new Missionnaire(grd, obj.cin);
console.log(x)

Я предполагаю, что это то, что вы хотите сделать.Вы можете изменить класс на интерфейс вместо класса (вы можете использовать класс в качестве базового класса и миссионера в качестве суперкласса).А все остальное просто.

...