Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- App = Ember.Application.create();
- App.store = DS.Store.create({
- adapter: DS.RESTAdapter.create()
- })
- App.set("room_id", 1);
- App.Models = Ember.Namespace.create();
- App.Mixins = Ember.Namespace.create();
- App.Mixins.ChatMessage = Ember.Mixin.extend({
- // common functionality here?
- })
- App.ChatMessage = Ember.Object.extend(App.Mixins.ChatMessage);
- App.Models.ChatMessage = DS.Model.extend(App.Mixins.ChatMessage, {
- contents: DS.attr("string"),
- room_id: DS.attr("string")
- })
- App.chatMessages = Ember.ArrayController.create({
- init: function() {
- App.get("eventQueue").on("message-posted", _(this.messagePosted).bind(this));
- },
- roomChanged: function() {
- this.set("content", []);
- }.bind("App.room_id"),
- messages: function() {
- return App.get("serverChatMessages").concat(this.get("content"));
- }.property("App.serverChatMessages", "content").cacheable(),
- messagePosted: function(data) {
- this.pushObject(App.ChatMessage.create(data));
- },
- postMessage: function(contents) {
- var room_id = App.get("room_id");
- var message = App.store.createRecord(App.Models.ChatMessage, {
- contents: contents,
- room_id: room_id
- });
- this.pushObject(message);
- App.store.commit();
- }
- })
- App.serverChatMessages = Ember.ArrayController.create({
- init: function() {
- this.loadData()
- },
- roomChanged: function() {
- this.loadData()
- }.observes("App.room_id"),
- loadData: function() {
- var room_id = App.get("room_id");
- this.set("content", App.store.find(App.Models.ChatMessage, {room_id: room_id}))
- }
- });
Add Comment
Please, Sign In to add comment