Невозможно создать компонент с outletref в Spartcus3.0.0-next.3

#angular #storefront #spartacus-storefront #b2b

#angular #витрина #spartacus-витрина #b2b

Вопрос:

Я пытаюсь создать новый компонент абзаца после выпадающего списка «моя учетная запись» после входа в систему. Я попытался создать компонент после ng-reflect-position=»SiteLogin» в функциях b2b.

В настоящее время используется Spartcus3.0.0-next.3. Где найдено изменение синтаксиса между 2.0 и 3.0.

Созданные шаги: Создан компонент angular, и его модуль был импортирован в app.module.ts

Импортированный импорт { OutletRefModule} из ‘@spartacus / storefront’; в новый модуль компонента

Импортирован вновь созданный компонент в app.component.html

Код компонента

<ng-template [cxOutletRef]=»SiteLogin» cxOutletPos=»перед» let-model>

 

Привет, этот новый компонент

Я не смог увидеть недавно импортированный компонент абзаца после компонента SiteLogin. Таким же образом в версии 2.0 можно получить компонент с помощью cxOutletRef=»TestComponent», но в версии 3.0 компонент не показан.

Я пропустил какой-либо код? Может кто-нибудь, пожалуйста, помогите, как получить компонент в 3.0

Заранее спасибо.

Комментарии:

1. Работает. Существует проблема в локальном обновлении последней предварительной версии. После установки с последней версией ng он работает нормально.

2. Мы не знаем об этой проблеме, но я рад, что вы смогли ее обойти!

Ответ №1:

Для элементов навигации внутри выпадающего списка нет выхода. Выпадающая навигация сама по себе является компонентом cms, и (в настоящее время) для вас больше нет мелкозернистого выхода.

Однако большинство клиентов будут контролировать навигацию в CMS. Возможно, это стоит учитывать.

Однако ваш код должен создавать код шаблона перед SiteLogin слотом страницы. Вы можете столкнуться с небольшой проблемой, поскольку вы, похоже, ссылаетесь на переменную SiteLogin , а не на строку "SiteLogin" . Вам нужно будет удалить окружающие скобки из cxOutletRef директивы:

 <ng-template cxOutletRef="SiteLogin" cxOutletPos="before" let-model>
  template content...
</ng-template>
  

Комментарии:

1. Я пытался удалить скобки, но они все еще не работают. Пытался показать перед Section1 <ng-template cxOutletRef=»Section1″ cxOutletPos=»before» let-model> Содержимое </ng-template> Либо для SiteLogin, либо для Section1 cxOutletRef не отражает шаблон, по-прежнему не отображающий содержимое. Любая помощь по этому поводу?