2016-11-15 4 views
2

Я написал эту функцию, которая должна отображать случайный цвет из этого массива, но он всегда отображает первый. Что-то не так с моим кодом? Я попробовал это в Google и проверил документацию метеоров, но не нашел ничего полезного.Метеор случайный выбор цвета

randomInitials: function() { 
    var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
    var nLetter = chars.charAt(Math.floor(Math.random()*chars.length)); 
    var sLetter = chars.charAt(Math.floor(Math.random()*chars.length)); 
    var colors = ["#e57373","#f06292","#ba68c8","#9575cd","#7986cb","#64b5f6","#4fc3f7","#4dd0e1","#4db6ac","#81c784","#aed581","#dce775","#fff176","#ffd54f","#ffb74d","#ff8a65","#a1887f","#e0e0e0","#90a4ae"]; 

    return colors[Math.floor(Math.random()*colors.length)]; 
    return nLetter + sLetter; 
}, 
<div class="other-profile"> 
    <span>{{memberData.profile.initials}}</span> 
</div> 

Прямо сейчас это выглядит следующим образом: Now

Я хочу это:

This

+0

Два возврата заявления является проблемой само по себе, 'вернуть nLetter + sLetter,' никогда не будет хитом. Также случайный выбор цвета работает нормально: https://jsfiddle.net/a3Lq7xtv/. Почему вы думаете, что есть проблема? –

+0

@RoryMcCrossan, что вы предлагаете? – weinde

+0

@RoryMcCrossan проблема в том, что каждый круг пользователя отображается в одном цвете вместо случайного цвета ... Я объявлю изображение, чтобы вы увидели, что я имею в виду – weinde

ответ

2

Поскольку вы возвращаете только цвета, ваш помощник должен выглядеть

randomInitials: function() { 
    var colors = ["#e57373","#f06292","#ba68c8","#9575cd","#7986cb","#64b5f6","#4fc3f7","#4dd0e1","#4db6ac","#81c784","#aed581","#dce775","#fff176","#ffd54f","#ffb74d","#ff8a65","#a1887f","#e0e0e0","#90a4ae"]; 
    return colors[Math.floor(Math.random()*colors.length)]; 
}, 

И в шаблоне:

<div class="other-profile" style="background-color: {{randomInitials}}"> 
    <span>{{memberData.profile.initials}}</span> 
</div> 
Смежные вопросы