У меня есть простой веб-сайт на основе Vue, созданный с помощью Vue CLI, и я пытаюсь понять, как динамически генерировать заголовки страниц для представлений с динамическими маршрутами. Сайт извлекает данные JSON из автономной CMS, и у меня есть динамические маршруты, настроенные для подробных представлений о типе контента проекта. У меня настроен динамический маршрут следующим образом:
// single project vue (dynamic)
{
path: "/projects/:project_name_slug",
name: "single-project",
component: () =>
import(
/* webpackChunkName: "single-project" */ "./views/SingleProject.vue"
),
meta: {
title: "project detail",
}
}
Я добавил следующее, что работает для добавления заголовков статических страниц:
// show page titles
const DEFAULT_TITLE = "my blog";
router.afterEach((to, from) => {
// document.title = to.meta.title || DEFAULT_TITLE;
document.title = "my blog - " + to.meta.title || DEFAULT_TITLE;
});
В его нынешнем виде, при посещении детального просмотра проекта, заголовок будет читать мой блог - детали проекта; однако я бы хотел, чтобы фактическое имя проекта было извлечено из данных JSON / поля для project_name
(так же, как путь маршрута использует project_name_slug
), но ничего из того, что я пробовал до сих пор, не сработало. Например, использование meta: { title: (route) => route.params.project_name }
приводит к тому, что после моего блога отображается необработанный текст функции -. Таким образом, в случаях для этих динамических представлений я хотел бы to.meta.title
разрешить имя проекта, создав мой блог - {название проекта}. Благодарим вас за любую помощь и дайте мне знать, если мне понадобится дополнительная информация.
* Примечание. Этот вопрос отличается от вопроса, заданного в этой теме SO поскольку в моем случае используются динамические маршруты с использованием данных JSON, запрошенных через Axios