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;