在 app 里要用 pageNow.$vm.$data.i18nPageTitle

This commit is contained in:
陆柯 2023-05-18 11:23:36 +08:00
parent 6bf2b39983
commit 3fc655dc0a

View File

@ -55,16 +55,16 @@ export default {
setBarTitles ({ windowTitle, pageTitle, pagesJson = this.pagesJson || wo?.pagesJson, envar = this.envar || wo?.envar } = {}) {
const langNow = my.langNow()
const pageNow = getCurrentPages()?.pop?.() // 需要兼顾在 App.vue 时无法获取当前页面的情况,因为如果在 topWindow 里调用本函数getApp() 和 getCurrentPages() 就是 undefined。
const pageNow = getCurrentPages()?.pop?.()
const navibarTitle =
pageTitle ||
pageNow?.i18nPageTitle?.[langNow] || // 页面.vue 的 i18nPageTitle 变量
pageNow?.i18nText?.[langNow]?.tPageTitle || // 页面.vue 的 i18nText 对象
pageNow?.pageTitle ||
pageNow?.$vm?.$data?.i18nPageTitle?.[langNow] || // 页面.vue 的 i18nPageTitle 变量
pageNow?.$vm?.$data?.i18nText?.[langNow]?.tPageTitle || // 页面.vue 的 i18nText 对象
pageNow?.$vm?.$data?.pageTitle ||
pagesJson?.pages?.find((page) => page.path === pageNow?.route)?.i18nPageTitle?.[langNow] || // pages.json 的页面配置里
''
// 在app里pageNow.route 是正确的,但是 pageNow.i18nPageTitle 未定义,不知为何
// 在app里pageNow.route 是正确的,但是 pageNow.xxx 等自定义属性 都 undefined必须 pageNow.$vm.$data.xxx 才可以。注意,$vm.$data 不包括 computed 属性,而 pageNow 里包括。
windowTitle =
windowTitle || wo?.envar?.callname?.[langNow] || pagesJson?.appInfo?.i18nText?.[langNow] || pagesJson?.globalStyle?.navigationBarTitleText || ''