Этот вопрос больше касается вопросов проектирования, чем решения конкретной ошибки.
Независимо от того, как я пытаюсь это сделать, у меня есть эта ошибка:
ERROR TypeError: "_co.accountService.accounts[_co.accountIndex] is undefined"
ИЛИ (потому что я пытался использовать переменную loading
, которая скрывает шаблон, пока маршрут paramMap
ничего не отправлял):
Expression has changed after it was checked. Previous value: 'ngIf: false'. Current value: 'ngIf: true'
У меня есть Account.service
, который используетсяAccount.component
для отображения списка учетных записей, поэтому при инициализации Account[]
сохраняется в Account.service
.
Когда я нажимаю на одну из этих учетных записей, я меняю маршрут на account/1
дляпример, который отображается на AccountDetail.component
.У меня уже есть заполненное поле Account[]
в Account.service
, и я не хочу инициализировать переменную Account
в Account.service
(не так ли?).
Я хотел бы Account.component
template для прямой ссылки на индекс Account[]
в Account.service
с помощью компонентной переменной accountIndex
, которая выводится из наблюдаемой paramMap
.
Первый вопрос:это имеет смысл или я должен относиться к этому по-другому?
В Account.component
мне не нужно хранить какую-либо информацию, весь шаблон напрямую связан с Account.service
(то есть <li *ngFor="let account of accountService.accounts">{{ account.name }}</li>
) и работает нормально.Я думаю сделать то же самое с AccountDetail.component
, как {{ accountService.accounts[accountIndex].name }}
).
Таким образом, если какой-либо компонент изменяет учетную запись, все остальные, отображающие их, автоматически обновляются (это правильный путь для достижения этой цели?).
Подводя итог : я хочу, чтобы все мои данные хранились в сервисах (только с конкретными параметрами фильтрации, которые контекстуально хранятся в компонентах), и я хочу, чтобы большинство из нихбыть создан во время инициализации Account.component, чтобы навигация была максимально быстрой.
Как мне сконструировать это?
Спасибо за чтение, и если кто-то готов помочь мне в этой теме, я могупри необходимости постарайтесь предоставить плункер (этот вопрос касается дизайна, я предпочитаю советы по дизайну, а не примеры кода, которые я не совсем понимаю).