Math.random(). ToString.slice не является функцией в Javascript

Я пытаюсь настроить пользовательскую директиву на 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>

Я искал везде в Интернете, но информацию. Любая помощь или предложения приветствуются. Спасибо

2 ответа

Решение

toString является функцией, поэтому вы должны использовать ее следующим образом:

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

Если вы пытаетесь генерировать случайный цвет, то это правильный путь:

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;
Другие вопросы по тегам