Javascript 在导入的对象中访问VM
有这样一个组件:Javascript 在导入的对象中访问VM,javascript,ecmascript-6,Javascript,Ecmascript 6,有这样一个组件: import { someData } from 'someData.js' export default { data() { return { foo: 'bar', someData: someData } } } export const someData = { someObject: { test: this.foo // How can I
import { someData } from 'someData.js'
export default {
data() {
return {
foo: 'bar',
someData: someData
}
}
}
export const someData = {
someObject: {
test: this.foo // How can I access foo from the component, where this object is imported from? This is not accessable.
},
}
someData.js:
import { someData } from 'someData.js'
export default {
data() {
return {
foo: 'bar',
someData: someData
}
}
}
export const someData = {
someObject: {
test: this.foo // How can I access foo from the component, where this object is imported from? This is not accessable.
},
}
如何访问someData.js中的this.foo 您可以改为导出函数,并将值作为参数传递:
import { getSomeData } from 'someData.js'
export default {
data() {
return {
foo: 'bar',
someData: getSomeData('bar')
}
}
}
someData.js
export const getSomeData = foo => ({
someObject: {
test: foo
},
})
这是不可能的,在调用
data()
方法之前先构造someData
对象。您还需要将其设置为函数,并接受foo
作为参数:
export function makeSomeData(foo) {
return {
someObject: {
test: foo
},
};
}
这对我来说仍然不起作用。您需要将其设置为getter函数,或者在使用foo
属性构造对象后调用它:
export default {
data() {
var obj = {
foo: 'bar',
};
obj.someData = makeSomeData(obj.foo);
return obj;
}
}
我认为这是不可能的。你需要它做什么?组件正在获取一些分析数据。js是一个highcharts配置对象,需要从组件中的计算属性获取这些分析数据。