我正在使用 Rails + Backbone + Faye 制作示例聊天应用程序。
我目前能够使用 Faye 的消息传递功能在创建事件上写入 DOM,尽管我实际上并没有实例化主干模型。Ala Ryan Bates 的教程我只是在里面打电话
创建.js.erb
<% broadcast "/messages/new" do %>
$("#chats-table").append("<%= escape_javascript render :partial => "chat", :locals => { :chat => @chat } %>");
<% end %>
并在另一个 javascript 中发布它:
faye.subscribe("/messages/new", function(data) {
eval(data);
});
我想稍微重构一下并利用主干的模型。一个很好的用例是删除方法。
我的聊天模型绑定到一个点击事件,删除哪些调用:
model.destroy();
this.remove();
Backbone 将调用 delete 方法并向 /entity/id 提出删除请求
这也会分派 rails 的“/views/delete.js.erb”。在那里,我调用了一个辅助方法,它使用 Ruby 代码发布消息。
<% broadcast "/messages/delete" do %>
<%= @chat.to_json.html_safe; %>
<% end %>
听众
var faye = new Faye.Client('http://0.0.0.0:9292/faye');
faye.subscribe("/messages/delete", function(data) {
});
在这里,我想知道是否可以以某种方式实例化已删除的主干模型,以便我可以将该事件推送到每个人的屏幕上并将其从 DOM 中删除。基本上,我想调用 this.remove(); 在 faye 客户端而不是在聊天模型中。这甚至可能吗?