z, ? | toggle help (this) |
space, → | next slide |
shift-space, ← | previous slide |
d | toggle debug mode |
## <ret> | go to slide # |
c, t | table of contents (vi) |
f | toggle footer |
r | reload slides |
n | toggle notes |
p | run preshow |
var cow = {};
_.extend(cow, Backbone.Events);
cow.bind("jump", function(msg) {
log("I just jumped: " + msg);
});
cow.trigger("jump", "over the moon");
var cow = {};
_.extend(cow, Backbone.Events);
cow.bind("jump", function(msg) {
log("I just jumped: " + msg);
});
cow.bind("all", function(eventName, msg) {
log("I know what you did last trigger: "
+ eventName);
});
cow.trigger("jump", "over the moon");
var Moon = function() {
this.distract = function() {
this.trigger("distracted");
};
};
_.extend(Moon.prototype, Backbone.Events);
var Cow = function() {
this.target = "over the moon";
this.jump = function() {
log("jump:" + this.target);
};
};
var cow = new Cow(),
moon = new Moon();
moon.bind("distracted", cow.jump);
moon.distract();
var Moon = function () {
this.distract = function() {
this.trigger("distracted");
};
};
_.extend(Moon.prototype, Backbone.Events);
var Cow = function () {
this.target = "over the moon";
this.jump = function() {
log("jump:" + this.target);
};
};
var cow = new Cow (),
moon = new Moon ();
moon.bind("distracted", cow.jump, cow);
moon.distract();
//remove the onChange callback
object.unbind("change", onChange);
// Removes all "change" callbacks.
object.unbind("change");
// Removes all callbacks on object.
object.unbind();
var cow = {};
_.extend(cow, Backbone.Events);
cow.bind("jump", function(over, the, moon) {
log(over + " " + the + " " + moon);
});
cow.trigger("jump", "over", "the", "moon");
var Pig = Backbone.Model.extend({});
var Pig = Backbone.Model.extend({
initialize: function() {
log("oink oink...");
}
});
var pig = new Pig();
var Pig = Backbone.Model.extend({});
var pig = new Pig({
name: "Wilbur",
age: 4});
var Pig = Backbone.Model.extend({});
var pig = new Pig({
name: "<script>alert('hi')</script>",
age: 4});
var name = pig.get("name");
log(name);
name = pig.escape("name");
log(name);
var Pig = Backbone.Model.extend({});
var pig = new Pig({
name: "Wilbur",
age: 4});
log(pig.get("name"));
pig.set({name: "Jeff", age: 100});
log(pig.get("name"));
var Pig = Backbone.Model.extend({});
var pig = new Pig({name: "Wilbur"});
log(pig.has("name"));
log(pig.has("color"));
var Pig = Backbone.Model.extend({});
var pig = new Pig({name: "Wilbur"});
log(pig.has("name"));
pig.unset("name");
log(pig.has("name"));
var Pig = Backbone.Model.extend({});
var pig = new Pig({name: "Wilbur", age: 1});
log(pig.has("name"));
log(pig.has("age"));
pig.clear();
log(pig.has("name"));
log(pig.has("age"));
var Pig = Backbone.Model.extend({
defaults: {
name: "don't know",
age: -1
}
});
var pig = new Pig({age: 22});
log(pig.get("name"));
log(pig.get("age"));
var Pig = Backbone.Model.extend({});
var sam = new Pig({name: "sam", age: 22});
var bill = sam.clone();
log(bill.get("name"));
bill.set({name: "bill"});
log(bill.get("name"));
var Pig = Backbone.Model.extend({
defaults: {meals: 0},
bellyFull: function () {
return this.get("meals") > 2;
},
feed: function (meal) {
if (this.bellyFull()) {
this.trigger("puke");
} else {
this.set({"meals":
this.get("meals") + 1});
}
}
});
var pig = new Pig();
pig.feed("garbage");
var Pig = Backbone.Model.extend({
validate: function(attrs) {
log("try to set age to: " + attrs.age);
if (attrs.age > 100) {
return "I'm not that old!";
}
}
});
var pig = new Pig({age: 2});
pig.bind("error", function(model, error) {
log(error);
});
pig.set({age: 191});
log(pig.get("age"));
var Chicken = Backbone.Model.extend({});
var chick = new Chicken({status: "sleeping"});
chick.bind("change", function(model) {
log("change");
});
chick.bind("change:status",
function(model, status) {
log("change:status");
});
chick.set({status: "tweeting"});
var Chicken = Backbone.Model.extend({});
var chick = new Chicken({status: "sleeping"});
chick.bind("change", function(model) {
log("change");
});
chick.bind("change:status",
function(model, status) {
log("change:status");
});
chick.set({status: "tweeting"},
{silent: true});
var Duck = Backbone.Model.extend({}),
coll = new Backbone.Collection(),
donald = new Duck({name: "donald"});
var add = function(m, s) {
try{coll.add(m);log(s);}
catch(e) {log(e);}
};
add({name: "donald"}, "1");
add({name: "donald"}, "2");
add(donald, "3");
add(donald, "4");
var Duck = Backbone.Model.extend({}),
coll = new Backbone.Collection();
coll.bind("add", function(duck) {
log("duck added");
});
coll.add([new Duck({name: "Donald"})]);
log(coll.length);
var Duck = Backbone.Model.extend({}),
coll = new Backbone.Collection(),
donald = new Duck({name: "donald"});
coll.bind("remove", function(duck) {
log("duck removed");
});
coll.add(donald);
coll.remove(donald)
log(coll.length);
var Duck = Backbone.Model.extend({}),
coll = new Backbone.Collection(),
donald = new Duck({age: 1});
coll.add(donald);
coll.bind("change:age",
function(m, age) {
log("age:" + age + " on id:" + m.cid);
}
);
donald.set({age: 2});
var Duck = Backbone.Model.extend({});
var coll = new Backbone.Collection();
coll.add([
new Duck({name: "Donald"}),
new Duck({name: "Donald"})]);
log(coll.length);
var coll = new Backbone.Collection();
coll.add([
{id: 1, name: "one"},
{id: 2, name: "two"}]);
var found = coll.get(2);
log(found.get("name"));
var coll = new Backbone.Collection();
coll.add([
{id: 1, name: "one"},
{id: 2, name: "two"}]);
var first = coll.at(1);
var found = coll.getByCid(first.cid);
log(found.get("name"));
var Dog = Backbone.Model;
var pound = new Backbone.Collection;
pound.comparator = function(dog) {
return dog.get("age");
};
pound.add(new Dog({age: 9, name: "End"}));
pound.add(new Dog({age: 5, name: "Middle"}));
pound.add(new Dog({age: 1, name: "Beginning"}));
log(pound.pluck('name'));
var Wolve = Backbone.Model;
var Pack = Backbone.Collection.extend({
model: Wolve,
initialize : function() {
log("could also set comparator");
}
});
var pack = new Pack([
new Wolve({name: "white fang"}),
new Wolve({name: "black flag"})]);
forEach (each), map, reduce (foldl, inject), reduceRight (foldr), find (detect) filter (select), reject, every (all), some (any), include, invoke max, min, sortBy, groupBy, sortedIndex, toArray, size, first, rest, last without, indexOf, lastIndexOf, isEmpty, chain
var coll = new Backbone.Collection([
{name: "Marty McFly", age: 18},
{name: "Biff Tannen", age: 38},]);
var future = function(coll, years) {
return coll.map(function(m) {
return {
name: m.get("name"),
age: m.get("age") + years}})
};
var theFuture = future(coll, 29);
log(theFuture);
var coll = new Backbone.Collection([
{animal: "dog", age: 1},
{animal: "cat", age: 3},
{animal: "human", age: 6 }]);
//get product of ages
var res = coll.reduce(function(memo, val) {
return memo * val.get("age");
}, 1);
log(res);
var House = Backbone.Model.extend({
storeName : "houseDB"
});
var house = new House(
{id:1, brick: "of course"});
house.save(null, {
success: function (e) {
log("saved");
}
});
var House = Backbone.Model.extend({
storeName : "houseDB"
});
var house = new House({id:1});
house.fetch({
success: function (m) {
log("found: " + m.get("brick") );
}
});
var House = Backbone.Model.extend({
storeName : "houseDB"
});
var house = new House({id:1});
house.destroy({
success: function (m, r) {
log("get lost punk" );
}
});
var House = Backbone.Model.extend({
storeName : "houseDB"
});
var house = new House({id:1});
house.fetch({
error: function (m) {
log("thank god");
}
});
var House = Backbone.Model.extend({
storeName : "houseDB"
});
var house = new House({brick: "who cares"});
log(house.isNew());
house.save();
log(house.isNew());
log(house.cid);
log(house.id);
var House = Backbone.Model.extend({storeName : "house2DB"});
var Ghetto = Backbone.Collection.extend({model : House, storeName : "house2DB"});
var house1 = new House({id:1, name: "house1"});
var house2 = new House({id:2, name: "house2"});
house1.save();
house2.save();
var ghetto = new Ghetto();
ghetto.fetch({error :
function(coll, res) {
log(coll);
}
});
var compiled =
_.template("you won a: <%= prize %>");
log(compiled({prize : 'pizza'}));
log(compiled({prize : 'zebra donkey'}))
var list =
"<% _.each(people, function(name) { %> " +
"<li><%= name %></li> <% }); %>";
log(_.template(list, {
people : [
'moe',
'curly',
'larry']}));