#angular #typescript
#angular #typescript
Вопрос:
У меня есть класс ChildClass.ts
, который обладает следующими свойствами.
name: String;
address: String;
Этот класс действует как свойство в MainClass.ts
следующим образом.
childClass: ChildClass;
mobNo: String;
Теперь в файле компонента A.ts
я устанавливаю значение name amp; address
, сначала объявляя переменную
@Input chCLass: ChildClass
и создание экземпляра класса в onInit()
а затем просто выполнить
this.chClass.name = 'FirstName LastName';
Теперь мне также нужно установить дочерний класс в MainClass, но я не хочу делать это в этом компоненте, поскольку есть много других элементов пользовательского интерфейса, которые необходимо заполнить, и только тогда будет лучше установить его в MainClass.
Итак, есть другой файл компонента ( B.ts
), в который я хочу установить это childClass
в Mainclass
.
Я попытался создать экземпляр MainClass и объявить ChildClass в компоненте, но когда я установил значение, подобное
B.ts
cCLass: ChildClass;
mClass: MainClass;
onInit(){
this.mClass = new MainClass();
}
this.mClass.childClass = this.cCLass;
Но печатать это.mClass в консоли выдает пустой дочерний класс.
У меня создалось впечатление, что как только значение задано в ChildClass в A.ts
, я могу просто присвоить его MainClass, даже если экземпляр MainClass находится в B.ts.
Я создал Stackblitz для черновой идеи.
значение переменных дочернего класса присваивается в A.ts, и этот объект дочернего класса должен быть присвоен MainClass в B.ts
stackblitz.com/edit/angular-7-master-xip1sm?file=src/app/B.ts
Кто-нибудь может помочь мне разобраться, как присвоить свойству ChildClass значение MainClass в B.ts
, в то время как значения для ChildClass заданы в A.ts
?
Комментарии:
1. очень сложно понять, чего вы пытаетесь достичь. Возможно, вы можете создать stackblitz, чтобы прояснить вашу проблему?
2. @PoulKruijt Я создал stackblitz для вас, хотя это не работает, я надеюсь, вы получите приблизительное представление. Я установил значения дочернего класса в A.ts, и этот дочерний класс должен быть присвоен MainClass в B.ts stackblitz.com/edit/angular-7-master-xip1sm?file=src/app/B.ts
3. Я бы рекомендовал на самом деле просто заполнить это
mainclass.ts
и передать его компонентам, которые должны изменять определенные свойства (используя двустороннюю привязку). В качестве альтернативы вы могли бы создать службу, которая содержит класс, и получить к нему доступ из компонентов.4. MainClass имеет много дочерних классов, и все дочерние классы заполняются из разных классов компонентов. Итак, как только я заполняю дочерний класс из компонента, а затем заполняю другой дочерний класс из другого компонента, я могу видеть только последние значения дочернего класса, если я печатаю MainClass в консоли.