{{d-button}} или <DButton>? Вот в чём вопрос

Продолжение обсуждения из DButton больше не поддерживает @action в виде строки. Пожалуйста, переделайте код, чтобы использовать замыкающее действие (closure action):

Это мне помогло!

Теперь мой вопрос (кроме того, как же мне потребовалось 9 месяцев, чтобы это сделать) — когда и в каких случаях использовать {{d-button}}, а когда <DButton>?

Современный паттерн в Ember — использовать синтаксис с угловыми скобками для вызова компонентов. Поэтому <DButton> предпочтительнее.

Мы проверяем это в ядре, но пока не распространили проверку на темы и плагины.

О. Отлично! Я так и думал!

Это было особенно запутанно, так как сообщение об ошибке жаловалось на <DButton>, хотя я использовал {{d-button}}. Я займусь исправлением этого в самое ближайшее время.

Ага. Спасибо за объяснение.

Погодите. Так мы отказались от @actionParam в <DButton> и теперь передаём данные вот так:

        @action={{fn this.addExtraVars this.extraVarsSmtp}}

но в <NavItem> у нас всё ещё есть это для передачи параметров маршруту:

            @route="pfaffmanager.servers.show"
            @routeParam={{server.id}}

В данном случае это особый случай.

<NavItem> вызывает <LinkTo>, который требует, чтобы имя маршрута, на который нужно перейти (route), и значение для заполнения динамического сегмента (model, здесь это идентификатор), были разделены.

<LinkTo
    @route={{@route}}
    @model={{@routeParam}}
  >{{this.contents}}
</LinkTo>

Понятно ли это?

Это хорошее объяснение, и я его понимаю, но я бы не сказал, что оно имеет смысл. :slight_smile:

Это логично, потому что здесь нет функции или действия (и оно не нужно) в NavItem. Вы просто хотите передавать параметры от компонента к компоненту. Понимаете, о чем я? Извините, я ужасно объясняю вещи. :sweat_smile: