Могу ли я ограничить область действия миксина Pug его объявленным блоком, чтобы он не был доступен для расширения блоков? - PullRequest
0 голосов
/ 02 апреля 2019

Это проблема, с которой я часто сталкиваюсь, и это заставляет меня задуматься, правильно ли я подхожу к Pug mixins. Я проверил проблемы GitHub для связанных разговоров.

С учетом этих файлов:

// main.pug

extends base

block content
    include message // or the definition itself
    +message('Outer')
    block inner
// page.pug

extends main

block inner
    +message('Inner')

Мопс даст блоку inner доступ к миксуину message. Это согласуется с другими правилами области видимости, такими как правила, касающиеся переменных.

Я бы хотел явно включить миксины в мои блоки и страницы, чтобы они не «знали» о объявлениях в блоках, которые они расширяют.

Мои чувства в стороне, Pug игнорирует избыточные объявления, означающие, что если вы определите миксин, который разделяет имя с миксином из расширенного блока, Pug спокойно использует существующий миксин. Вы должны знать обо всех миксинах из всех блоков, которые вы расширяете. РЕДАКТИРОВАТЬ: Я, должно быть, неправильно это запомнил. При дальнейшем тестировании более поздний миксин переопределяет исходный.

Это так, как есть, или я должен использовать миксины по-другому?

...