将数据传递给指令?

时间:2018-04-24 15:12:26

标签: vue.js vuejs2 vuejs-directive

docs中,它声明您可以将各种参数传递给指令。

所以我想传递一个值:

v-my-directive="test"

但我收到错误:

Property or method "test" is not defined on the instance but referenced during render

如何将字符串传递给指令?

2 个答案:

答案 0 :(得分:2)

该值是常规JavaScript表达式。这样,如果你想传递一个字符串,比如'test',请使用:

v-my-directive="'test'"

演示:

Vue.directive('my-directive', function (el, binding) {
  console.log('directive expression:', binding.value)  // => "test"
})

new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue.js!'
  }
})
<script src="https://unpkg.com/vue"></script>

<div id="app">
  <p>{{ message }}</p>
  <div v-my-directive="'test'"></div>
</div>

答案 1 :(得分:1)

您必须引用该字符串,否则它将在您的组件上下文中查找def myfunct(arg): arg = copy.deepcopy(arg) arg.x += 1 return arg 变量(testprops):

data

在自定义指令中,您可以像v-my-directive="'test'"

一样访问传递的值
binding.value

请参阅指南的Custom Directives章节。