Сложный объект внутри сложного объекта не определен в angular 7 - PullRequest
0 голосов
/ 16 июня 2020

Я новичок в angular. У меня есть следующая модель в angular:

export default class ScheduleTriggerData {
    id: Guid;
    name: string;
    isAdvancedSchedule: boolean;
    schedule: string;

    schedulerAlgorithmRequestModel: SchedulerAlgorithmRequestModel

    constructor(init?: Partial<ScheduleTriggerData>) {
        Object.assign(this, init);
    }
}

SchedulerAlgorithmRequestModel:

export default class SchedulerAlgorithmRequestModel {
    algorithm: string;

    constructor(init?: Partial<SchedulerAlgorithmRequestModel>) {
       Object.assign(this, init);
    }
}

Я привязал свойство algorithm к SchedulerAlgorithmRequestModel с видом. В файле ngOnInit из .ts , который я сделал:

this.bindToEditSlider = new ScheduleTriggerData();

Теперь я получаю сообщение об ошибке «Не удается прочитать алгоритм свойства undefined». Что я делаю не так ? Я имею в виду, что эта вещь работает в C#, так что мне здесь не хватает. Я застрял на этом, поэтому я буду благодарен за любую помощь.

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Измените данные запуска расписания на: -

export default class ScheduleTriggerData {
    id: Guid;
    name: string;
    isAdvancedSchedule: boolean;
    schedule: string;

    schedulerAlgorithmRequestModel: SchedulerAlgorithmRequestModel

    constructor(init?: Partial<ScheduleTriggerData>) {
       if(init){
        this.id = init.id;
        this.name = init.name;
        this.isAdvancedSchedule = init.isAdvancedSchedule;
        this.schedule = init.schedule;
        this.schedulerAlgorithmRequestModel = new SchedulerAlgorithmRequestModel(init.schedulerAlgorithmRequestModel);
       } else {
        this.schedulerAlgorithmRequestModel = new SchedulerAlgorithmRequestModel();  
       }
    }
}



export default class SchedulerAlgorithmRequestModel {
    algorithm: string;

    constructor(init?: Partial<SchedulerAlgorithmRequestModel>) {
      if(init){
       Object.assign(this, init);
      }
    }
}
0 голосов
/ 16 июня 2020

эта строка вызывает конструктор без аргументов.

this.bindToEditSlider = new ScheduleTriggerData();

Этот конструктор будет иметь undefined в init аргументе

export default class ScheduleTriggerData {
.......

    constructor(init?: Partial<ScheduleTriggerData>) {
        Object.assign(this, init);
    }
}

Object.assign(this, undefined) не будет инициализировать свойство schedulerAlgorithmRequestModel и останется undefined. Вам нужно как-то инициализировать schedulerAlgorithmRequestModel или изменить привязку, чтобы она могла обрабатывать ситуацию, когда schedulerAlgorithmRequestModel равно undefined

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...