В Vapor, особенно в классе для пользовательского тега Leaf, как вы можете извлекать значения, хранящиеся в контексте?Как получить значения из контекста в Vapor?
Я пытаюсь реализовать тег, который берет строку и путь, и отображает ссылку, если только путь не является текущей страницей, поэтому, например, #navElement("About Us", "/about")
создаст ссылку на страницу сайта на каждой странице кроме самой страницы. На этой странице он должен отображать текст без ссылки на него.
Я не хочу, чтобы пройти текущий путь к тэгу каждый раз, когда я использую его, поэтому я хранится путем просьбы в контексте, примерно так (чеки опущенных):
drop.get(":page"){ request in
return try drop.view.make(thePage, ["path": request.uri.path])
}
Я могу использовать #(path)
в шаблоне и видеть путь, который я ожидаю.
Мой пользовательский тег получен из Tag
, а его метод run
принимает контекст как аргумент, и я могу видеть сохраненное значение там в отладчике, но как я могу его получить? Метод get
в классе Context
, который, кажется, делает это, равен internal
, поэтому я не могу его использовать. Есть комментарий, в котором говорится, что индексы должны быть выполнены, и я предполагаю, что это в конечном итоге будет способом извлечения значений из контекста, но тем временем, есть ли способ их получить?
Спасибо, но я стараюсь избегать повторения этого аргумента каждый раз, когда я использую этот тег, и поскольку у меня уже есть контекст в методе 'run', я надеялся, что сможет извлечь путь оттуда. – MacAvon
См. Обновление с обходным решением – tobygriffin
Спасибо, что нашли это. Похоже, это странное решение, когда они передают контекст, чтобы «запустить», но я не знаю почему. Предлагаемое обходное решение делает трюк для меня. – MacAvon