我遇到了解決此問題的方法時遇到問題。 tl; dr我希望能夠將li的css類設置爲發佈該聊天的current_user的名稱。然後根據這個班級,我將應用不同的風格。使用current_user設置CSS類
這是一個聊天窗口,我希望當前所有的用戶信息,顯示在一邊,我希望所有其他消息顯示在另一側用不同的顏色,等
我有一個file.js.coffee
基本上讀取一些用戶輸入,並將其apends到一個有序列表,並增加了沿途的一些元素和類
projectRef.on "child_added", (snapshot) ->
message = snapshot.val()
$("<li class='self'>").append($("<div class='message'>").append($("<p>").text(message.text))).prepend($("<b/>").text(message.name + ": ")).appendTo $("#messagesDiv")
$("#messagesDiv")[0].scrollTop = $("#messagesDiv")[0].scrollHeight
$("#messageInput").keypress (e) ->
if e.keyCode is 13
text = $("#messageInput").val()
projectRef.push
name: userName
text: text
$("#messageInput").val ""
以上會產生像這樣在瀏覽器
<li class="self">
<b>User : </b>
<div class="message">
<p>My chatt message from file.js.coffee!!</p>
</div>
</li>
li中的'self'類是我一直試圖基於current_user動態設置的。所以我有兩個問題 - 1.我試圖找出是誰發佈了li和2.我試圖根據聊天/發佈的用戶動態設置該li的類。
我的想法是沿着在file.js.coffee使用jQuery搶禮,並添加<%= current_user.name %>
爲一類,然後我可以有一個file.js.erb在那裏我會做這樣的事情
<% unless $('li').hasClass('<%= current_user.name %>'); %>
<%= $('li').toggleClass('others') %>
<% end %>
這樣,它檢查類目標li
的是從目前的用戶時,如果它是保持CSS類自我,如果不是切換到其他。然後,我可以適當地設置類的樣式(左,右,background-color:blue;
等)。
有沒有更正確的方法來解決這個問題給我想要完成的?我認爲這樣..
也許我完全失去了一些東西,但我與如何識別張貼聊天會已經從CURRENT_USER掙扎。我不認爲@ BillyChan的答案會工作,因爲我寫這封信[火力](http://firebase.com)服務器,而不是我創建了一個消息模型。仍然困惑:/ –
@Tmacram我看着火力例子,改變它加個班「CURRENT_USER」的,因爲它寫的一條消息在聊天窗口,如果當前用戶的名稱寫郵件的人的名字相匹配。 使用不同的用戶名在同一時間使用兩種不同的網絡瀏覽器這個例子。 [鏈接](https://www.firebase.com/tutorial/play.html#-IzR1yE-r6Pm0xLRWUGn) – Shanosha
@Tmacram我檢查了重火力例子,改變它做的事情,我們正在討論。請參閱我在上面的答案中添加的更新。我已經發布了代碼片段以及該工作示例的鏈接。 – Shanosha