Пример должен работать, и мне не известно о каких-либо значимых изменениях между стабильным релизом и текущей версией. Дайте нам знать, если вам удастся воспроизвести проблему!
Спасибо, Дэвид. Сделаю. Да, я это заметил. Сейчас мяч точно на моей стороне, так как среда, в которой я столкнулся с этой проблемой, была не полностью чистой.
не работает в Development начиная с версии 3.0.0 (возможно, и раньше)
Я тестировал как на чистом Dev-окружении без Docker, так и на очень чистом (но, возможно, с неполной конфигурацией) специальном Docker Dev-окружении.
Вот ошибки:
Произошла ошибка:
- При рендеринге:
- top-level
application
discourse-root
sidebar-wrapper
admin
admin-wrapper
nav-item
link-to
-link-to
Uncaught (in promise) TypeError: При генерации ссылки на маршрут "adminPlugins": this.model не определен
get allAdminRoutes admin-plugins.js:20
Обратите внимание: я могу поставить оператор debugger перед return this.model, но он никогда не срабатывает.
@RGJ также любезно посмотрел на это и смог воспроизвести эту проблему.
Это довольно серьёзная проблема, так как очевидно, что нам нужно разрабатывать функционал до его выкладки в продакшн… но я не должен вам об этом напоминать! Также немного раздражает, что проблема возникает на Stable-версии…
Не уверен, сколько мы можем сделать для исправления этого в самом Discourse — как вы отметили, проблема, похоже, находится выше по потоку, в Ember. Возможно, мы сможем исправить проблемный метод
Чтобы начать работу, я добавил минимальный тестовый случай, который приводит к ошибке, чтобы мы могли отслеживать прогресс. В тесте есть комментарии, объясняющие, почему проблема вызывается нашей системой modifyClass:
Парадоксально, но это, похоже, единственное продвижение в проекте Ember в рамках связанного PR, который всё ещё находится в статусе черновика. Неужели всё, что требуется, — это вежливая просьба выделить приоритет, когда появится возможность?:
Да, мой тест основан на ихнем (но с использованием специфичного для Discourse API api.modifyClass). Я не думаю, что нам стоит открывать новый тикет — это на 100% то же самое, что и уже открытый. Посмотрим, сможем ли мы что-то сделать, чтобы ускорить его рассмотрение.
Это исправление уже выпущено в составе Ember 3.28.12, и мы обновили Discourse, чтобы использовать его. Пожалуйста, сообщите нам, если вы всё ещё сталкиваетесь с проблемами при использовании modifyClass после обновления до последней версии Discourse.