SlideShare ist ein Scribd-Unternehmen logo
1 von 58
Downloaden Sie, um offline zu lesen
Building Bridges, Connecting Communities
VADIM MIRGOROD
Front-end, 05/22/2013
Using Backbone.js with
Drupal 7 and 8
Vadim Mirgorod
• Lead developer in Trellon
• Writing Backbone.js CookBook for PACKT
• Email: dealancer@gmail.com
• Web: http://vmirgorod.name
• Twitter: @dealancer
#2
Remember the web 
development in 90s?
#3
1995: JavaScript
#4
2000: XMLHttpRequest
#5
2006: jQuery
#6
2013:
?
#7
What's new in JS?
• HTML5:
– Local Storage
– pushState
• JS templating engines:
– Mustache.js
– Twig.js
• Representative State Transfer (REST)
#8
JavaScript client 
evolution
#9
Complexity
#10
Thin to thick transition
#11
Performance
#12
Problems!
Right now typical AJAX 
code looks like this
$(document).ready(function() {
$("#getData").click( function() {
$.getJSON("artistsRemote.cfc?method=getArtists&returnformat=json",
function(data) {
$("#artistsContent").empty();
$("#artistsTemplate").tmpl( data ).appendTo("#artistsContent");
var nowIs = new Date().toLocaleString();
$('#lastLoad').html( nowIs );
});
});
});
#14
AJAX in Drupal
Have you seen any JS?
#15
#16
Let's do things properly!
#17
Meet...
#18
#19
Backbone.js
• URL: http://backbonejs.org/
• Created by Jeremy Ashkenas in 2010, an
author of CoffeeScript
• Based on Underscore.js:
http://backbonejs.org/
• Requires jQuery or Zepto
#20
Backbone.js features
• Minimalistic
• Modular
• Perfect OOP design
• Over 100 available extensions:
https://github.com/documentcloud/backbone/wik
i/Extensions,-Plugins,-Resources
• Community
#21
Backbone vs...
• Knockout
• AngularJS
• CanJS
• Spine
• Ember.js
• many others
#22
Backbone vs...
#23
Who uses Backbone.js?
• Groupon Now!
• Foursquare
• LinkedIn Mobile
• Airbnb
#24
Let's learn how to 
backbone!
#25
Main concepts
• Model
• Collection
• View
• Template
• Router
• History
• Events
#26
MVC: Backbone:
http://www.jboss.org/jdf/examples/ticket-monster/tutorial/UserFrontEnd/#27
DEMO!
TODO APP
#28
Easy example
Define the model and 
the collection
// Define new model.
var InvoiceItemModel = Backbone.Model.extend({
calculateAmount: function() {
return this.get('price') * this.get('quantity');
}
});
// Define new collection object.
var InvoiceItemCollection = Backbone.Collection.extend({
model: InvoiceItemModel
});
#30
Define the view to 
render the model
var InvoiceItemView = Backbone.View.extend({
// Define element tag name.
tagName: 'tr',
// Define template.
template: _.template($('#item-row-template').html()),
// Render the view.
render: function() {
var data = this.model.toJSON();
data.amount = this.model.calculateAmount();
$(this.el).html(this.template(data));
return this;
},
});
#31
Define the view to 
render the collection
var InvoiceItemListView = Backbone.View.extend({
tagName: 'table',
template: _.template($('#item-table-template').html()),
// Render the view.
render: function() {
$(this.el).html(this.template());
_.each(this.collection.models, function(model, key) { this.append(model); }, this);
return this;
},
// Add an invoice item row to the table.
append: function(model) {
$(this.el).append(new InvoiceItemView({ model: model }).render().el);
}
});
#32
Add templates into 
index.html
<script type="text/html" class="template" id="item-table-template">
<tr>
<th>Quantity</th>
<th>Description</th>
<th>Price</th>
<th>Amount</th>
</tr>
</script>
<script type="text/html" class="template" id="item-row-template">
<td><%= quantity %></td>
<td><%= description %></td>
<td><%= price %></td>
<td><%= amount %></td>
</script>
#33
Create collection and 
show the view
var invoiceItemCollection = new InvoiceItemCollection([
{ description: 'Wooden Toy House', price: 22, quantity: 3 },
{ description: 'Farm Animal Set', price: 17, quantity: 1 },
]);
$('body').html(new InvoiceItemListView({
collection: invoiceItemCollection }).render().el
);
#34
Some cool things
Two way binding
Model to view binding
Layouts
TemplatesRouter
Forms
Model to view binding
var InvoiceItemView = Backbone.View.extend({
// ...
initialize: function() {
this.listenTo(this.model, 'destroy', this.destroy, this);
this.listenTo(this.model, 'change', this.render, this);
},
destroy: function() { this.remove(); }
});
var InvoiceItemListView = Backbone.View.extend({
// ...
initialize: function() {
this.listenTo(this.collection, 'add', this.append, this);
}
});
#36
Forms
// Backbone-forms extension.
var UserModel = Backbone.Model.extend({
schema: {
title: { type: 'Select', options: ['Mr', 'Mrs', 'Ms'] },
name: 'Text',
email: { validators: ['required', 'email'] },
password: 'Password',
birthday: 'Date',
}
});
userModel = new BuyerModel();
$('body').append(new Backbone.Form({ model: this.user }).form.render().el);
#37
Two­way binding
// Backbone.stickit extension.
var InvoiceItemFormView = Backbone.View.extend({
className: 'invoice-item-form-view',
bindings: {
'#description': 'description',
'#price': 'price',
'#quantity': 'quantity'
},
render: function() {
var html = '<label>Description:</label><input type="text" id="description"></input><br>' +
'<label>Price:</label><input type="text" id="price"></input><br>' +
'<label>Quantity:</label><input type="text" id="quantity"></input><br>';
$(this.el).html(html);
// Here binding occurs.
this.stickit();
return this;
}#38
Forms
// Backbone-forms extension.
var UserModel = Backbone.Model.extend({
schema: {
title: { type: 'Select', options: ['Mr', 'Mrs', 'Ms'] },
name: 'Text',
email: { validators: ['required', 'email'] },
password: 'Password',
birthday: 'Date',
}
});
userModel = new BuyerModel();
$('body').append(new Backbone.Form({ model: this.user }).form.render().el);
#39
Router
var Workspace = Backbone.Router.extend({
routes: {
// Default path.
'': 'invoiceList',
// Usage of static path.
'invoice': 'invoiceList',
// Usage of fragment parameter.
'invoice/:id': 'invoicePage',
// Usage of fragment parameters.
'help/:topic/page:page': 'helpPage',
// Usage of splat parameter.
'download/*path': 'downloadPage'
},
});
#40
Other cool things...
in Backbone.js Cookbook
• Bootstrapping:
– Technique we saw above
– Do it yourself
• Representational State Transfer:
– Services module
– RESTful webservices module
• Backbone.js module
Backbone and Drupal 7
#43
REST
#44
REST in Backbone
var PostModel = Backbone.Model.extend({
// Override id attribute.
idAttribute: '_id',
// Define URL root to access model resource. Otherwise use
// url() method to provide full path to the model resource.
urlRoot: function() { return 'http://example.com/posts/'; }
});
var PostCollection = Backbone.Collection.extend({
model: PostModel,
// Define path to the collection resource.
url: function() { return 'http://example.com/posts/'; }
});
#45
REST in Backbone.js
// Fetches data into a model.
model.fetch();
// Saves a model.
model.save();
// Destroys a model.
model.destroy();
// Fetches data into a collection.
collection.fetch();
// Adds models to a collection.
collection.add(models);
// Removes specific models from collection.
collection.remove(models);
#46
Backbone module
• URL: http://drupal.org/project/backbone
• Provides models and collections for Drupal
entities via REST:
– Node: Node model
– All node: NodeIndex collection
– Arbitrary view: NodeView collection
• Works with both Services and RESTful Web
Services modules.
#47
Backbone module
// Create new NodeView collection.
var viewCollection = new Drupal.Backbone.Collections.NodeView();
// Set Drupal View name.
viewCollection.viewName = 'backbone_example';
// Fetch data from the collection.
viewCollection.fetch({success: function() {
console.log(viewCollection.toJSON());
});
#48
Backbone mdl roadmap
• Support for bootstrapping
• Better views support
• In-place content editing
• Drag and Drop
• D8 version?
#49
http://www.flickr.com/photos/gabblebee/3977912731/
Backbone and Drupal 8
• It is in core!
• Used for In-place editing issue:
http://drupal.org/node/1824500
• Used for layouts issue:
http://drupal.org/node/1841584
• Used for toolbar issue:
http://drupal.org/node/1860434
• META issue: http://drupal.org/node/1858368
#51
DEMO!
One more thing!
• Web services initiative
– REST in core
– Storage controllers
• Twig
– Templating engine
– Twig in core (Twig sandbox)
– Works both for PHP and JS
#53
One more thing!
#54
Twig templates
Storage controllers
Access controllers
Render controllers
Form controllers
DBBrowser
One more thing!
#55
Backbone app
Twig templates
Storage controllers
Access controllers
Render controllers
Form controllers
DB
REST
Browser
One more thing!
#56
Backbone app
Twig templates
Storage controllers
Access controllers
Render controllers
Form controllers
DB
REST
Browser
Mobile
One more thing!
#57
Backbone app
Twig templates
Storage controllers
Access controllers
DB
REST
Mobile app built with PhoneGap or Trigger.io
Building Bridges, Connecting Communities
Evaluate this session at:
 portland2013.drupal.org/node/1578. 
Thank you!
What did you think?

Weitere ähnliche Inhalte

Was ist angesagt?

Frontend JS workflow - Gulp 4 and the like
Frontend JS workflow - Gulp 4 and the likeFrontend JS workflow - Gulp 4 and the like
Frontend JS workflow - Gulp 4 and the likeDamien Seguin
 
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other ToolsCool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other ToolsRyan Weaver
 
Introduction to Express and Grunt
Introduction to Express and GruntIntroduction to Express and Grunt
Introduction to Express and GruntPeter deHaan
 
"Service Worker: Let Your Web App Feel Like a Native "
"Service Worker: Let Your Web App Feel Like a Native ""Service Worker: Let Your Web App Feel Like a Native "
"Service Worker: Let Your Web App Feel Like a Native "FDConf
 
Let Grunt do the work, focus on the fun! [Open Web Camp 2013]
Let Grunt do the work, focus on the fun! [Open Web Camp 2013]Let Grunt do the work, focus on the fun! [Open Web Camp 2013]
Let Grunt do the work, focus on the fun! [Open Web Camp 2013]Dirk Ginader
 
Automating WordPress Theme Development
Automating WordPress Theme DevelopmentAutomating WordPress Theme Development
Automating WordPress Theme DevelopmentHardeep Asrani
 
PDXPortland - Dockerize Django
PDXPortland - Dockerize DjangoPDXPortland - Dockerize Django
PDXPortland - Dockerize DjangoHannes Hapke
 
How to Use the Command Line to Increase Speed of Development
How to Use the Command Line to Increase Speed of DevelopmentHow to Use the Command Line to Increase Speed of Development
How to Use the Command Line to Increase Speed of DevelopmentAcquia
 
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsAdvanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsk88hudson
 
Automating Front-End Workflow
Automating Front-End WorkflowAutomating Front-End Workflow
Automating Front-End WorkflowDimitris Tsironis
 
TDC2016SP - Esqueça Grunt ou Gulp. Webpack and NPM rule them all!
TDC2016SP -  Esqueça Grunt ou Gulp. Webpack and NPM rule them all!TDC2016SP -  Esqueça Grunt ou Gulp. Webpack and NPM rule them all!
TDC2016SP - Esqueça Grunt ou Gulp. Webpack and NPM rule them all!tdc-globalcode
 
Production Ready Javascript With Grunt
Production Ready Javascript With GruntProduction Ready Javascript With Grunt
Production Ready Javascript With GruntXB Software, Ltd.
 
Lean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushLean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushPantheon
 
Drupal 8 Theme System: The Backend of Frontend
Drupal 8 Theme System: The Backend of FrontendDrupal 8 Theme System: The Backend of Frontend
Drupal 8 Theme System: The Backend of FrontendAcquia
 
NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & CapistranoNLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistranonickblah
 
Automating your workflow with Gulp.js
Automating your workflow with Gulp.jsAutomating your workflow with Gulp.js
Automating your workflow with Gulp.jsBo-Yi Wu
 
Into The Box 2018 Going live with commandbox and docker
Into The Box 2018 Going live with commandbox and dockerInto The Box 2018 Going live with commandbox and docker
Into The Box 2018 Going live with commandbox and dockerOrtus Solutions, Corp
 

Was ist angesagt? (20)

Frontend JS workflow - Gulp 4 and the like
Frontend JS workflow - Gulp 4 and the likeFrontend JS workflow - Gulp 4 and the like
Frontend JS workflow - Gulp 4 and the like
 
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other ToolsCool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
 
Introduction to Express and Grunt
Introduction to Express and GruntIntroduction to Express and Grunt
Introduction to Express and Grunt
 
"Service Worker: Let Your Web App Feel Like a Native "
"Service Worker: Let Your Web App Feel Like a Native ""Service Worker: Let Your Web App Feel Like a Native "
"Service Worker: Let Your Web App Feel Like a Native "
 
Let Grunt do the work, focus on the fun! [Open Web Camp 2013]
Let Grunt do the work, focus on the fun! [Open Web Camp 2013]Let Grunt do the work, focus on the fun! [Open Web Camp 2013]
Let Grunt do the work, focus on the fun! [Open Web Camp 2013]
 
Automating WordPress Theme Development
Automating WordPress Theme DevelopmentAutomating WordPress Theme Development
Automating WordPress Theme Development
 
Front-end tools
Front-end toolsFront-end tools
Front-end tools
 
PDXPortland - Dockerize Django
PDXPortland - Dockerize DjangoPDXPortland - Dockerize Django
PDXPortland - Dockerize Django
 
How to Use the Command Line to Increase Speed of Development
How to Use the Command Line to Increase Speed of DevelopmentHow to Use the Command Line to Increase Speed of Development
How to Use the Command Line to Increase Speed of Development
 
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsAdvanced front-end automation with npm scripts
Advanced front-end automation with npm scripts
 
Automating Front-End Workflow
Automating Front-End WorkflowAutomating Front-End Workflow
Automating Front-End Workflow
 
TDC2016SP - Esqueça Grunt ou Gulp. Webpack and NPM rule them all!
TDC2016SP -  Esqueça Grunt ou Gulp. Webpack and NPM rule them all!TDC2016SP -  Esqueça Grunt ou Gulp. Webpack and NPM rule them all!
TDC2016SP - Esqueça Grunt ou Gulp. Webpack and NPM rule them all!
 
Production Ready Javascript With Grunt
Production Ready Javascript With GruntProduction Ready Javascript With Grunt
Production Ready Javascript With Grunt
 
Grails 1.4.0.M1 メモLT
Grails 1.4.0.M1 メモLTGrails 1.4.0.M1 メモLT
Grails 1.4.0.M1 メモLT
 
Lean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushLean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and Drush
 
Drupal 8 Theme System: The Backend of Frontend
Drupal 8 Theme System: The Backend of FrontendDrupal 8 Theme System: The Backend of Frontend
Drupal 8 Theme System: The Backend of Frontend
 
NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & CapistranoNLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistrano
 
Angular2 ecosystem
Angular2 ecosystemAngular2 ecosystem
Angular2 ecosystem
 
Automating your workflow with Gulp.js
Automating your workflow with Gulp.jsAutomating your workflow with Gulp.js
Automating your workflow with Gulp.js
 
Into The Box 2018 Going live with commandbox and docker
Into The Box 2018 Going live with commandbox and dockerInto The Box 2018 Going live with commandbox and docker
Into The Box 2018 Going live with commandbox and docker
 

Andere mochten auch

Periféricos inalámbricos
Periféricos inalámbricosPeriféricos inalámbricos
Periféricos inalámbricosAkemiRa-Lee
 
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...Ovadiah Myrgorod
 
Open source and You. DrupalForum ZP.
Open source and You. DrupalForum ZP.Open source and You. DrupalForum ZP.
Open source and You. DrupalForum ZP.Ovadiah Myrgorod
 
Создаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровожденияСоздаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровожденияOvadiah Myrgorod
 
Системы управления взаимоотношениями с клиентами. Drupal CRM Core.
Системы управления взаимоотношениями с клиентами. Drupal CRM Core. Системы управления взаимоотношениями с клиентами. Drupal CRM Core.
Системы управления взаимоотношениями с клиентами. Drupal CRM Core. Ovadiah Myrgorod
 
Redes informáticas
Redes informáticasRedes informáticas
Redes informáticasAkemiRa-Lee
 
Tipos de archivos
Tipos de archivosTipos de archivos
Tipos de archivosAkemiRa-Lee
 
Drupal code sprint для новичков
Drupal code sprint для новичковDrupal code sprint для новичков
Drupal code sprint для новичковOvadiah Myrgorod
 
Citar Fuentes electronicas
Citar Fuentes electronicasCitar Fuentes electronicas
Citar Fuentes electronicasAkemiRa-Lee
 
La papelera de reciclaje
La papelera de reciclajeLa papelera de reciclaje
La papelera de reciclajeAkemiRa-Lee
 
Amerigo dylan and sabina 2007 2.0
Amerigo dylan and sabina 2007 2.0Amerigo dylan and sabina 2007 2.0
Amerigo dylan and sabina 2007 2.0guest9c164c1b
 
Building your influence - Win More Business
Building your influence - Win More BusinessBuilding your influence - Win More Business
Building your influence - Win More BusinessDexter Moscow
 
Content Area Proposal
Content Area ProposalContent Area Proposal
Content Area ProposalMike Cawley
 
Malaysia sebuah negara yang tidak pernah dijajah
Malaysia sebuah negara yang tidak pernah dijajahMalaysia sebuah negara yang tidak pernah dijajah
Malaysia sebuah negara yang tidak pernah dijajahDegree Accounting Note
 
Drupal Camp Kyiv 2011 - OpenAcaDept – Drupal distribution for building academ...
Drupal Camp Kyiv 2011 - OpenAcaDept – Drupal distribution for building academ...Drupal Camp Kyiv 2011 - OpenAcaDept – Drupal distribution for building academ...
Drupal Camp Kyiv 2011 - OpenAcaDept – Drupal distribution for building academ...Ovadiah Myrgorod
 

Andere mochten auch (20)

Periféricos inalámbricos
Periféricos inalámbricosPeriféricos inalámbricos
Periféricos inalámbricos
 
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...
 
Open source and You. DrupalForum ZP.
Open source and You. DrupalForum ZP.Open source and You. DrupalForum ZP.
Open source and You. DrupalForum ZP.
 
Создаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровожденияСоздаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровождения
 
Системы управления взаимоотношениями с клиентами. Drupal CRM Core.
Системы управления взаимоотношениями с клиентами. Drupal CRM Core. Системы управления взаимоотношениями с клиентами. Drupal CRM Core.
Системы управления взаимоотношениями с клиентами. Drupal CRM Core.
 
Redes informáticas
Redes informáticasRedes informáticas
Redes informáticas
 
Tipos de archivos
Tipos de archivosTipos de archivos
Tipos de archivos
 
Drupal code sprint для новичков
Drupal code sprint для новичковDrupal code sprint для новичков
Drupal code sprint для новичков
 
Los archivos
Los archivosLos archivos
Los archivos
 
Citar Fuentes electronicas
Citar Fuentes electronicasCitar Fuentes electronicas
Citar Fuentes electronicas
 
La papelera de reciclaje
La papelera de reciclajeLa papelera de reciclaje
La papelera de reciclaje
 
Amerigo dylan and sabina 2007 2.0
Amerigo dylan and sabina 2007 2.0Amerigo dylan and sabina 2007 2.0
Amerigo dylan and sabina 2007 2.0
 
Building your influence - Win More Business
Building your influence - Win More BusinessBuilding your influence - Win More Business
Building your influence - Win More Business
 
Content Area Proposal
Content Area ProposalContent Area Proposal
Content Area Proposal
 
Penalitzar + Incentivar. Una suma que multiplica
Penalitzar + Incentivar. Una suma que multiplica Penalitzar + Incentivar. Una suma que multiplica
Penalitzar + Incentivar. Una suma que multiplica
 
Malaysia sebuah negara yang tidak pernah dijajah
Malaysia sebuah negara yang tidak pernah dijajahMalaysia sebuah negara yang tidak pernah dijajah
Malaysia sebuah negara yang tidak pernah dijajah
 
Catalunya: marc estratègic i actuacions destacades per l'impuls de l'economia...
Catalunya: marc estratègic i actuacions destacades per l'impuls de l'economia...Catalunya: marc estratègic i actuacions destacades per l'impuls de l'economia...
Catalunya: marc estratègic i actuacions destacades per l'impuls de l'economia...
 
Drupal Camp Kyiv 2011 - OpenAcaDept – Drupal distribution for building academ...
Drupal Camp Kyiv 2011 - OpenAcaDept – Drupal distribution for building academ...Drupal Camp Kyiv 2011 - OpenAcaDept – Drupal distribution for building academ...
Drupal Camp Kyiv 2011 - OpenAcaDept – Drupal distribution for building academ...
 
Escritorio2do
Escritorio2doEscritorio2do
Escritorio2do
 
Impresoras
ImpresorasImpresoras
Impresoras
 

Ähnlich wie Using Backbone.js with Drupal 7 and 8

Backbonejs for beginners
Backbonejs for beginnersBackbonejs for beginners
Backbonejs for beginnersDivakar Gu
 
Understanding backbonejs
Understanding backbonejsUnderstanding backbonejs
Understanding backbonejsNick Lee
 
Introduction to Backbone.js for Rails developers
Introduction to Backbone.js for Rails developersIntroduction to Backbone.js for Rails developers
Introduction to Backbone.js for Rails developersAoteaStudios
 
using Mithril.js + postgREST to build and consume API's
using Mithril.js + postgREST to build and consume API'susing Mithril.js + postgREST to build and consume API's
using Mithril.js + postgREST to build and consume API'sAntônio Roberto Silva
 
Backbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCBackbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCpootsbook
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
 
Dependency Management with RequireJS
Dependency Management with RequireJSDependency Management with RequireJS
Dependency Management with RequireJSAaronius
 
Prateek dayal backbonerails-110528024926-phpapp02
Prateek dayal backbonerails-110528024926-phpapp02Prateek dayal backbonerails-110528024926-phpapp02
Prateek dayal backbonerails-110528024926-phpapp02Revath S Kumar
 
Single Page Web Apps with Backbone.js and Rails
Single Page Web Apps with Backbone.js and RailsSingle Page Web Apps with Backbone.js and Rails
Single Page Web Apps with Backbone.js and RailsPrateek Dayal
 
Viking academy backbone.js
Viking academy  backbone.jsViking academy  backbone.js
Viking academy backbone.jsBert Wijnants
 
Creating Single Page Web App using Backbone JS
Creating Single Page Web App using Backbone JSCreating Single Page Web App using Backbone JS
Creating Single Page Web App using Backbone JSAkshay Mathur
 
Building Modern Websites with ASP.NET by Rachel Appel
Building Modern Websites with ASP.NET by Rachel AppelBuilding Modern Websites with ASP.NET by Rachel Appel
Building Modern Websites with ASP.NET by Rachel Appel.NET Conf UY
 
jquery summit presentation for large scale javascript applications
jquery summit  presentation for large scale javascript applicationsjquery summit  presentation for large scale javascript applications
jquery summit presentation for large scale javascript applicationsDivyanshGupta922023
 
MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!Roberto Messora
 
Javascript frameworks: Backbone.js
Javascript frameworks: Backbone.jsJavascript frameworks: Backbone.js
Javascript frameworks: Backbone.jsSoós Gábor
 

Ähnlich wie Using Backbone.js with Drupal 7 and 8 (20)

Backbone js-slides
Backbone js-slidesBackbone js-slides
Backbone js-slides
 
Backbone js
Backbone jsBackbone js
Backbone js
 
Backbonejs for beginners
Backbonejs for beginnersBackbonejs for beginners
Backbonejs for beginners
 
Understanding backbonejs
Understanding backbonejsUnderstanding backbonejs
Understanding backbonejs
 
Introduction to Backbone.js for Rails developers
Introduction to Backbone.js for Rails developersIntroduction to Backbone.js for Rails developers
Introduction to Backbone.js for Rails developers
 
using Mithril.js + postgREST to build and consume API's
using Mithril.js + postgREST to build and consume API'susing Mithril.js + postgREST to build and consume API's
using Mithril.js + postgREST to build and consume API's
 
Backbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCBackbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVC
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
Dependency Management with RequireJS
Dependency Management with RequireJSDependency Management with RequireJS
Dependency Management with RequireJS
 
Backbone Basics with Examples
Backbone Basics with ExamplesBackbone Basics with Examples
Backbone Basics with Examples
 
Prateek dayal backbonerails-110528024926-phpapp02
Prateek dayal backbonerails-110528024926-phpapp02Prateek dayal backbonerails-110528024926-phpapp02
Prateek dayal backbonerails-110528024926-phpapp02
 
Single Page Web Apps with Backbone.js and Rails
Single Page Web Apps with Backbone.js and RailsSingle Page Web Apps with Backbone.js and Rails
Single Page Web Apps with Backbone.js and Rails
 
Viking academy backbone.js
Viking academy  backbone.jsViking academy  backbone.js
Viking academy backbone.js
 
Javascript Design Patterns
Javascript Design PatternsJavascript Design Patterns
Javascript Design Patterns
 
Creating Single Page Web App using Backbone JS
Creating Single Page Web App using Backbone JSCreating Single Page Web App using Backbone JS
Creating Single Page Web App using Backbone JS
 
Building Modern Websites with ASP.NET by Rachel Appel
Building Modern Websites with ASP.NET by Rachel AppelBuilding Modern Websites with ASP.NET by Rachel Appel
Building Modern Websites with ASP.NET by Rachel Appel
 
jquery summit presentation for large scale javascript applications
jquery summit  presentation for large scale javascript applicationsjquery summit  presentation for large scale javascript applications
jquery summit presentation for large scale javascript applications
 
MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!
 
Introduction to angular js
Introduction to angular jsIntroduction to angular js
Introduction to angular js
 
Javascript frameworks: Backbone.js
Javascript frameworks: Backbone.jsJavascript frameworks: Backbone.js
Javascript frameworks: Backbone.js
 

Using Backbone.js with Drupal 7 and 8