0
在排行榜示例中,在leaderboard.html中,{{selected_name}}的調用如何返回selected_name字符串,但在函數所在的leaderboard.js文件中返回一個布爾?我知道這是更多的JS問題,但只是試圖讓我的頭纏繞它排行榜示例,與'selected_name'的混淆返回值
在排行榜示例中,在leaderboard.html中,{{selected_name}}的調用如何返回selected_name字符串,但在函數所在的leaderboard.js文件中返回一個布爾?我知道這是更多的JS問題,但只是試圖讓我的頭纏繞它排行榜示例,與'selected_name'的混淆返回值
你在考慮下面的代碼?
Template.leaderboard.selected_name = function() {
var player = Players.findOne(Session.get("selected_player"));
return player && player.name;
}
儘管&&
-operator是一個布爾運算符,但它不返回布爾值。 「正確的方式」當然是return player.name
,但是如果Players.find
返回null
(沒有選定的id的玩家存在),這個代碼在執行時會崩潰。爲了避免這種情況的發生,使用了&&
操作員的小黑客,它確保player.name
僅在player
不是falsye(而不是null
)時纔會執行。操作員的結果是右側,因此會返回播放器的名稱(或null
,它的左側,如果它是null
)。
謝謝你的解釋先生 –