2012-07-18 78 views
2

我目前有一大堆列表,其中每個列表都有能力添加評論。使用Rails + Unobtrusive向評論列表添加評論使用Rails + Unobtrusive Javascript

這裏的_new.html.haml部分系統產生和每一個列表的末尾

<div class="comment add-comment row-fluid"> 
    <div class="avatar"> 
    <img alt="Admin User1" src="http://localhost:3000/assets/DDDDDD.png"> 
    </div> 
    <div class="message"> 
    <form accept-charset="UTF-8" action="/suggestions/50057a3160de7d361d000061/comments" class="new_comment" data-remote="true" id="new_comment" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" value="✓" type="hidden"><input name="authenticity_token" value="vVw7kLNGF4AiXmOMjryPDI70Mz5paZnW3usdgzxLsik=" type="hidden"></div> 
    <fieldset> 
     <div class="control-group"> 
     <div class="controls"> 
      <textarea cols="40" id="comment_content" name="comment[content]" placeholder="Add a comment..." required="required" rows="20"></textarea> 
     </div> 
     </div> 
     <input class="btn btn-primary" name="commit" value="Post" type="submit"> 
    </fieldset> 
</form> 
    </div> 
</div> 

我能夠使用不引人注目的JavaScript來創建註釋,但是當我加載create.js.haml,我不知道什麼DOM對象附加它來。

在我comments/create.js.haml,我有

$(".add-comment").before("#{escape_javascript(render partial: "comments/show", locals: { :comment => @comment })}") 

顯然,這並不工作,因爲add-comment類是通用於所有名單。有沒有一種方法可以將我剛剛創建的內容追加到正確的列表中,並顯示新的添加評論部分?

回答

0

我終於能夠解決它。調試Unobtrusive JavaScript比普通的JS難一點。感謝Google Chrome開發工具的網絡功能。

我認爲,我加入id

<div class="comment add-comment row-fluid" id="500614e960de7d313a000189"> 
    ... 
</div> 

然後,內create.js.haml,我從可變@commentable,其由所述控制器通過在得到了ID,轉換成DOM元素,然後過程一些更多的JS。

​​