Math.random()。toString.slice不是Javascript中的函数

时间:2017-12-20 12:32:25

标签: javascript vuejs2 vuejs-directive

我正在尝试在Vue JS 2上设置自定义指令。但是我收到了以下错误消息:

TypeError: Math.random(...).toString.slice is not a function

这是我在main.js上全局编写的指令:

Vue.directive('rainbow', {
  bind (el, binding, vnode) {
    el.style.color = '#' + Math.random().toString.slice(2, 8)
  }
})

这是我在调用我的指令

的地方
<h2 v-rainbow>Hello</h2>

我在网上搜索但信息。 任何帮助或建议都非常受欢迎。 THX

2 个答案:

答案 0 :(得分:4)

toString是一个函数,因此您必须按以下方式使用它:

Math.random().toString().slice(2, 8)
----------------------^^^---------

答案 1 :(得分:1)

如果您尝试生成随机颜色,那么这是正确的方法:

var colorNumber = Math.floor(Math.random() * 0xffffff); 
// converting to hexadecimal 
var colorNumberStr = colorNumber.toString(16);  
// added 0-s to have fixed 6-length string
var colorNumberStrPadded = ('00000' + colorNumberStr).slice(-6) 
el.style.color = '#' + colorNumberStrPadded;