This extension enables you to add views to your backbone apps tweaking how Backbone and RaphaelJS handle event bindings.
<script type="text/javascript" src="raphael.js"></script> <script type="text/javascript" src="jquery-2.0.1.js"></script> <script type="text/javascript" src="underscore.js"></script> <script type="text/javascript" src="backbone.js"></script> <script type="text/javascript" src="backbone.raphael.js"></script> <script type="text/javascript" src="yourApp.js"></script>
var paper = Raphael("container", 300, 640); // Usual backbone model var CircleModel = Backbone.Model.extend(); var CircleView = Backbone.RaphaelView.extend({ initialize: function(){ var model = this.model; this.listenTo(model, "change", this.render); // Create raphael element from the model var circle = paper.circle(model.get("x"), model.get("y"), model.get("radio")).attr({fill: model.get("color")}); // Set the element of the view this.setElement(circle); }, events: { // Any raphael event "click": "sayType" }, sayType: function(evt){ console.log(evt.type); }, render: function(){ var circle = this.el; var model = this.model; //When the model changes, so the element circle.attr({ cx: model.get("x"), cy: model.get("y"), r: model.get("radio"), fill: model.get("color") }); } }); var model = new CircleModel({ x: 100, y: 150, radio: 50, color: "blue" }); var view = new CircleView({ model: model });
For a more complex example see the sample app in this repo.
Thats it!
Licensed under the MIT license.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4