Knockback.js API and Usage Examples

kb.Observable

Used to generate a single observable for a model's attribute

Example:

ContactViewModel = (model) ->
  @name = kb.observable(model, 'name')
  @number = kb.observable(model, {key:'number', read_only: true})
  @
  
model = new Contact({name: 'Ringo', number: '555-555-5556'})
view_model = new ContactViewModel(model)
var ContactViewModel = function(model) {
  this.name = kb.observable(model, 'name');
  this.number = kb.observable(model, { key: 'number', read_only: true });
};
var model = new Contact({
  name: 'Ringo',
  number: '555-555-5556'
});
var view_model = new ContactViewModel(model);

Tutorials

kb.observable(model, mapping_info, [owner]) factory

Used to create a new instance

Parameters
  1. model:{ Backbone.Model }:the model whose attributes will be synchronized
  2. mapping_info: optional
    • read{ function() }:
    • write{ function(value) }:
    • read_only{ boolean }:
    • localizer{ constructor(value) }:
    • default{ function() or value }:
  3. owner: optional required if you need the view model as "this" in your read or write methods

Example:

name = kb.observable(model, 'name')
var name = kb.observable(model, 'name');

Tutorials

constructor(model, mapping_info, [owner]) observable returned

Used to create a new instance

Parameters
  1. model:model:{ Backbone.Model }:the model whose attributes will be synchronized
  2. mapping_info: optional
    • read{ function() }:
    • write{ function(value) }:
    • read_only{ boolean }:
    • localizer{ constructor(value) }:
    • default{ function() or value }:
  3. owner: optional required if you need the view model as "this" in your read or write methods

Example:

name = new kb.Observable(model, 'name')
var name = new kb.Observable(model, 'name');

Tutorials

destroy()

Used to release the memory of the object

setToDefault()

Used to return all of the owned observables to their default values (if they exist)

Example:

model = Backbone.Model({name: 'Bob'})
name = kb.observable(model, {key:'name', default: '(none)'})
# name is Bob

name.setToDefault()
# name is (none)
var model = Backbone.Model({name: 'Bob'});
var name = kb.observable(model, {key:'name', default: '(none)'});
// name is Bob

name.setToDefault();
// name is (none)