我想访问标记模板文字所在的对象上存在的值,而无需引入额外的语法。
function myTemplate(str: TemplateStringsArray) {
console.log(this.myValue)
return str[0]
}
function Create(options) {
return options
}
const value = Create({
myValue: 'something',
template: myTemplate`
some text
`
})
我希望console.log(this.myValue)
打印位于嵌套对象上的值。
以下方法有效,但我不想像这样绑定模板。
const value = Create({
myValue: 'something',
template: myTemplate.bind(this)`
some text
`
})
我试图像这样在Create
函数中绑定它:
function Create(options) {
options.template.bind(options)
return options
}
但是,由于标签已经过评估,因此当然不起作用。
答案 0 :(得分:1)
知道了。我必须从模板文字返回一个函数,并从创建函数中传递选项
function myTemplate(str: TemplateStringsArray) {
return function(options: any) {
console.log(options.myValue)
return str[0]
}
}
function Create(options: any) {
options.template = options.template(options)
return options
}
const value = Create({
myValue: 'something',
template: myTemplate`
some text
`
})