mirror of
https://github.com/tenrok/vue-meta.git
synced 2026-06-08 15:52:27 +03:00
More reliable strategy for getting deepmost component + addition of refresh() method + example & documentation on asynchronous updates
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import deepmerge from 'deepmerge'
|
||||
import getComponentOption from './getComponentOption'
|
||||
import mergeComponentData from './mergeComponentData'
|
||||
|
||||
/**
|
||||
* Returns the correct meta info for the given component
|
||||
@@ -26,7 +25,7 @@ export default function getMetaInfo (component) {
|
||||
}
|
||||
|
||||
// collect & aggregate all metaInfo $options
|
||||
const info = getComponentOption({
|
||||
const { mergedOption: info, deepestComponentWithMetaInfo } = getComponentOption({
|
||||
component,
|
||||
option: 'metaInfo',
|
||||
deep: true,
|
||||
@@ -73,13 +72,12 @@ export default function getMetaInfo (component) {
|
||||
}
|
||||
|
||||
const metaInfo = deepmerge(defaultInfo, info)
|
||||
const componentData = mergeComponentData(component)
|
||||
|
||||
// inject component context into functions & call to normalize data
|
||||
Object.keys(metaInfo).forEach((key) => {
|
||||
const val = metaInfo[key]
|
||||
if (typeof val === 'function') {
|
||||
metaInfo[key] = val.call(componentData)
|
||||
metaInfo[key] = val.call(deepestComponentWithMetaInfo)
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user