Skip to content

Instantly share code, notes, and snippets.

@mankind
Last active August 29, 2015 14:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mankind/26c1998f1206e3ca378b to your computer and use it in GitHub Desktop.
Save mankind/26c1998f1206e3ca378b to your computer and use it in GitHub Desktop.
emberjs course
ember new cms
ember generate model page navbar:string title:string body:string
import DS from 'ember-data';
export default DS.Model.extend({
navbar: DS.attr('string'),
title: DS.attr('string'),
body: DS.attr('string'),
parent: DS.belongsTo('page', {inverse: 'children', embedded: true}),
children: DS.hasMany('page', {inverse: 'parent', async: true}),
});
### generate routes
PagesRoute
ember generate route pages --type=resource
ember generate route pages/new
ember generate route page --type=resource
ember generate route page/edit
ember generate route page/newChildPage
############### routes/application.js
import Ember from 'ember';
export default Ember.Route.extend({
model: function(){
return this.store.find('page');
}
});
#### route/pages.js
import Ember from 'ember';
export default Ember.Route.extend({
model: function(){
return this.store.all('page');
}
});
############ route/pages/new.js
import Ember from 'ember';
export default Ember.Route.extend({
model: function(){
return this.store.createRecord('page');
},
setupController: function( controller, model) {
controller.set('model', model);
this._super();
},
actions: {
save: function(page){
//console.log('page object', page);
var self = this;
page.save().then(
function() {
self.transitionTo('pages');
},
function(error) {
// work with person that failed to save
self.get('currentModel').rollback();
//console.log("An error occured", error);
}
);
},
cancel: function(page) {
page.rollback();
this.transitionTo('pages.index');
}
}
});
##### router.js
Router.map(function() {
this.resource('pages', function() { });
this.route('pages/new');
this.resource('page', { path: 'pages/:page_id' }, function() { });
this.route('page/edit');
this.route('page/newChildPage');
});
###
this.resource('pages', function(){
this.resource('page', {path: '/:page_name'}, function() {
//this.resource('page', {path: '/:page_id'}, function() {
this.route('edit');
this.route('newChildPage');
}); //closes 'page'
this.route('new');
}); //closes 'pages'
####page/_form.hbs
<form {{action 'save' model on="submit"}} role="form">
<p>{{input type="text" placeholder="navbar" value=navbar required=true}}</p>
<p>{{input type="text" placeholder="sub section" value=title required=true}}</p>
<p>{{textarea placeholder="main body" value=body cols="55" rows="6"}}</p>
<button type="submit" class="btn btn-primary btn-default"> submit </button>
<button {{action 'cancel' model}} class="btn btn-danger btn-default"> Cancel</button>
</form>
##page/new.hbs
{{partial 'page/form'}}
##application.hbs
{{link-to 'Create new page' 'pages.new'}}
##
ember generate model user username:string password:string
ember generate service session
ember generate component session-manager
ember generate route application
ember generate component pages-list
bower install --save-dev jquery-cookie#1.4.1
## Then in Brofile.js
app.import('bower_components/jquery-cookie/jquery.cookie.js');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment