Я создаю сложный вид с большим количеством функций. Чтобы все было организовано, я разбил его на несколько пользовательских компонентов.
Я постараюсь быть кратким, поскольку у меня это работает, но я не могу представить, что это «правильный путь».
Структура:
- AppComponent(has binding to dataModel)
--LayoutComponent
---HeaderComponent
---SideMenuComponent
---MainContentComponent
Мне нужно иметь возможность предоставить каждому из этих компонентов доступ к одному и тому же экземпляру модели данных. Но когда я добавляю службу в качестве поставщика и в конструктор в каждом компоненте, он генерирует новый экземпляр данных. Таким образом, изменения, сделанные в одном компоненте, не отразятся на данных другого.
Итак, что я сделал, так это дал доступ самому верхнему родительскому компоненту AppComponent
к модели данных, а затем передал его по цепочке через шаблон [(dataModel)]="dataModel"
.
Затем в каждом компоненте я добавил переменную dataModel
, которая начинается с нулевого значения, но после создания шаблона я привязываю ее к этой локальной переменной.
Это работает, поскольку я могу привязать входные данные в каждом компоненте к одному и тому же полю, например dataModel.name, и когда я его обновляю, все компоненты отражают изменение.
Это просто не похоже на чистый способ сделать это. Любая помощь будет оценена по достоинству.
AppModule
, чтобы сделать ее единственной во всем приложении. - person Harry Ninh   schedule 27.09.2016