Vue.js 将数据传递给指令?
在中,它声明可以将各种参数传递给指令 所以我想传入一个值:Vue.js 将数据传递给指令?,vue.js,vuejs2,vue-directives,Vue.js,Vuejs2,Vue Directives,在中,它声明可以将各种参数传递给指令 所以我想传入一个值: v-my-directive="test" 但我得到了一个错误: Property or method "test" is not defined on the instance but referenced during render 如何将字符串传递给指令?该值是一个正则JavaScript表达式。这样,如果您想传递字符串,比如说'test',请使用: v-my-directive="'test'" 演示: Vue.dire
v-my-directive="test"
但我得到了一个错误:
Property or method "test" is not defined on the instance but referenced during render
如何将字符串传递给指令?该值是一个正则JavaScript表达式。这样,如果您想传递字符串,比如说
'test'
,请使用:
v-my-directive="'test'"
演示:
Vue.directive('my-directive',函数(el,绑定){
console.log('directive expression:',binding.value)/=>“test”
})
新Vue({
el:“#应用程序”,
数据:{
消息:“您好,Vue.js!”
}
})
{{message}}
您必须引用字符串,否则它将在您的组件上下文中查找测试
变量(其道具
或数据
):
在自定义指令中,您可以像在binding.value
中一样访问传递的值:
Vue.directive('demo', {
bind: function (el, binding, vnode) {
var s = JSON.stringify
el.innerHTML =
'name: ' + s(binding.name) + '<br>' +
'value: ' + s(binding.value) + '<br>' +
'expression: ' + s(binding.expression) + '<br>' +
'argument: ' + s(binding.arg) + '<br>' +
'modifiers: ' + s(binding.modifiers) + '<br>' +
'vnode keys: ' + Object.keys(vnode).join(', ')
}
})
Vue.directive('demo'{
绑定:函数(el、绑定、vnode){
var s=JSON.stringify
el.innerHTML=
'name:'+s(binding.name)+'
'+
'value:'+s(binding.value)+'
'+
'表达式:'+s(binding.expression)+'
'+
'参数:'+s(binding.arg)+'
'+
'修饰符:'+s(binding.modifiers)+'
'+
'vnode键:'+Object.keys(vnode.join(','))
}
})
请参阅指南的章节。console.log(el.value);此项为空。实际上,应该在
console.log(binding.value)
中。谢谢-错过了该项!添加了一个演示,以防万一.console.log(el.value);此项为空。在指令中,必须使用binding.value
访问该值
Vue.directive('demo', {
bind: function (el, binding, vnode) {
var s = JSON.stringify
el.innerHTML =
'name: ' + s(binding.name) + '<br>' +
'value: ' + s(binding.value) + '<br>' +
'expression: ' + s(binding.expression) + '<br>' +
'argument: ' + s(binding.arg) + '<br>' +
'modifiers: ' + s(binding.modifiers) + '<br>' +
'vnode keys: ' + Object.keys(vnode).join(', ')
}
})