Как сохранить значение массива в базе данных с угловым 5 - PullRequest
0 голосов
/ 24 сентября 2018

В моем массиве параметров кода не работает, и когда я пытаюсь связать его с помощью ngModel, он не работает для меня и выдает мне 400 неверных запросов.Я включил свой код здесь

Вот моя модель 2 Модель вопрос и вариант модели

Question.ts

import { Option } from '../models/option';

export class Question {
id: number;
name: string;
options: Option[] = new Array(4);

constructor(data = null) {
    if (data) {
        this.id = data.id;
        this.name = data.name;
        this.options = data.options; 
    }  
}
}

Option.ts

export class Option {
id: number;
questionId: number;
option: string;
isAnswer : boolean;


constructor(data = null) {
    if(data){
        this.id = data.id;
        this.questionId = data.questionId;
        this.option = data.option;
        this.isAnswer = data.isAnswer;
    }
}
}

Здесь я включаю код exam.component.ts

class FormExam {
id: number;
name: string;
options: Option[] = new Array(4);

static formexam(question: Question) {
    let instance = new this;
    instance.id = question.id;
    instance.name = question.name;
    instance.options = question.options;

    return instance;
}

toTask(question: Question) {
    question.id = this.id;
    question.name = this.name;
    question.options = this.options;

    return question;
}
}

export class ExamComponent implements OnInit {
@Input() question: Question;

@Output() onSubmit = new EventEmitter();

userModel: User;
form: FormGroup;

dialogHeader2: string;
isNewTask: boolean;
filterStr: string = '';
isRequestLoading: boolean;
isValidateLoading: boolean;
model: FormExam;
showNameError: boolean;
stateModel: any;
stateText: string;
submitButtonText2: string;
questionModel: Question;


 ngOnInit() {
    let task = this.question;
    this.isNewTask = !task;
    this.question = task ? task : new Question();
    this.submitButtonText2 = this.question.id ? 'Save' : 'Create';
    this.model = FormExam.formexam(this.question);

}

Вот HTML-код и в этом коде, когда я использую [(ngModel)] в опции, а isAnswer не работает для меня.

<div class="ct-form-block">
    <div>
        <label class="ct-form-label">Question</label>
        <ct-textarea [name]="'name'" [maxlength]="200" [(ngModel)]="model.name">  </ct-textarea>

    </div>

    <div *ngFor="let option of model.options;">

        <label class="ct-form-label"> Options</label>
        <div class="ct-required-field-container ">
            <input class="ct-input ct-full-width2"
                   name="options" [(ngModel)]="option.option"/>

            <input type="checkbox" name="Options" [(ngModel)]="option.isAnswer" />

        </div>
    </div>
</div>

в этом коде model.option и model.isAnswer не работают, потому что, когда я отправляю этот код, он выдает ошибку error 400, поэтому есть ли другой способ сохранить это значение в базе данных.

1 Ответ

0 голосов
/ 27 сентября 2018

Следующее:

<input type="checkbox" name="Options" [(ngModel)]="model.isAnswer" />

Разве это не должно быть (то, что повторяет ваш цикл):

<input type="checkbox" name="Options" [(ngModel)]="option.isAnswer" />
...