2016-11-15 48 views
2

我寫了這個函數,它應該從這個數組中顯示一個隨機顏色,但它總是顯示第一個。我的代碼有問題嗎?我曾嘗試使用谷歌搜索並檢查流星文檔,但沒有發現任何用處。流星隨機選色器

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

兩個return語句是一個問題本身,'返回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>