angular6 - Отправить данные из одного компонента в другой

  • Я хочу отправить ответ после создания билета компоненту, который показывает детали билета, я новичок в angular 6, поэтому мне нужен совет.
  • Как лучше отправить ответ от сервиса? Отправьте его компоненту, а затем компоненту для получения подробностей, или как-то я могу отправить его компоненту, который отвечает за детали?

  • Общий сервис Я слышал об этом, так что, может быть, это или также я слышал о каком-то родительском дочернем методе, но я этого не совсем понял, так как теперь между двумя компонентами нет никакой связи (я думаю, нет родительского дочернего элемента)

введите здесь описание изображения


person user3050538    schedule 30.07.2018    source источник
comment
Поделитесь своими данными с помощью ticket.service.ts, чтобы после ответа вы могли сохранить свои данные в своей службе, а затем использовать их для отображения сведений о билете.   -  person Yazan Mehrez    schedule 30.07.2018


Ответы (1)


У вас есть в основном возможный подход:

Общение родителей и детей

Вы можете получить эту функциональность с помощью аннотации @Input. Таким образом, родительский компонент содержит объект данных и передает его дочернему компоненту. Затем вы можете управлять обновлениями данных с помощью интерфейса OnChanges.

Вы можете предпочесть этот подход, если хотите подчеркнуть связь между родителями и детьми между вашими компонентами. Таким образом, вы заставляете свой дочерний компонент находиться внутри другого компонента, управляющего исходными данными. Таким образом, данные уничтожаются при уничтожении родителя.

Общая служба

Этот подход, который вы описали, основан на общей службе, которая хранит данные и предоставляет их подписчикам. Таким образом, служба управляет данными и хранит их, и потенциально неограниченное количество компонентов может получить доступ к этим данным.

Этот подход работает с шаблоном наблюдателя, поэтому ваш компонент должен следить за обновлениями данных.

Таким образом, данные уничтожаются при уничтожении службы или, что еще лучше, когда уничтожаются все компоненты, содержащие объект службы.

--

Глядя на вашу диаграмму, что вы должны сделать для меня:

  • CreateComponent просит Сервис создать тикет
  • Служба создает тикет и отправляет новые данные тикета в CreateComponent.
  • Che CreateComponent считывает новые полученные данные и, если создание прошло успешно, запрашивает навигацию по маршруту к TicketDetail. В противном случае вы можете управлять возможными ошибками

Если вы переходите к деталям непосредственно из Сервиса, вы не можете правильно управлять результатом создания, потому что в Сервисе у вас нет представления для взаимодействия с пользователем. Может быть, вы могли бы найти какой-нибудь способ сделать это, но я думаю, что это может быть немного сложно.

person firegloves    schedule 30.07.2018