Skip to content

Instantly share code, notes, and snippets.

@grapho
Forked from alexspeller/application.route.js
Created September 29, 2015 19:15
Show Gist options
  • Save grapho/a20872fb5f3823144c82 to your computer and use it in GitHub Desktop.
Save grapho/a20872fb5f3823144c82 to your computer and use it in GitHub Desktop.
New Twiddle
import Ember from 'ember';
import RecordDeletedMixin from 'demo-app/mixins/record-deleted';
export default Ember.Route.extend(RecordDeletedMixin, {
pushClient: Ember.inject.service('push-client'),
recordDeleted() {
alert("a post was deleted, but you are not on the post page so you don't care");
},
actions: {
pretendPush() {
this.get('pushClient').deleteRecord();
}
}
});
<button {{action 'pretendPush'}}>Pretend to websocket push</button>
{{link-to "Index" "index"}}
{{link-to "Post" "post" 123}}
{{outlet}}
<h2>Index Page</h2>
import Ember from "ember";
export default Ember.Mixin.create({
activate() {
this._super();
this.get('pushClient').on('recordDeleted', this, this.recordDeleted);
},
deactivate() {
this._super();
this.get('pushClient').off('recordDeleted', this, this.recordDeleted);
}
});
import Ember from 'ember';
import RecordDeletedMixin from 'demo-app/mixins/record-deleted';
export default Ember.Route.extend(RecordDeletedMixin, {
pushClient: Ember.inject.service('push-client'),
model() {
return "a post";
},
recordDeleted() {
alert('The post you were looking at was deleted. Returning to home page');
this.transitionTo('index');
}
});
<h2>My Great Post</h2>
import Ember from 'ember';
import config from './config/environment';
var Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.route('post', {path: "/posts/:post_id"});
});
export default Router;
import Ember from 'ember';
export default Ember.Service.extend(Ember.Evented, {
router: Ember.computed(function() {
// should be injected in an initializer, can't get intializer working in twiddle
return this.container.lookup('router:main');
}),
deleteRecord() {
this.trigger('recordDeleted');
}
});
{
"version": "0.4.11",
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.13.9/ember.debug.js",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/1.13.11/ember-data.js",
"ember-template-compiler": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.13.9/ember-template-compiler.js"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment