Backbone pub-sub 4

unsubscribe

by bighostkim

JavaScript

var CustomerService = function (name) {
            this.name = name;
            //should use Prototype for this funciton, but this will work.
            this.alert = function (msg) {
                alert(name + " alerted; " + msg);
            };
        };

        var ControlPanel = function () {
            this.events = _.extend({}, Backbone.Events);
        };

        var Door = function (name) {
            this.name = name
            this.open = function () {
                controlPanel.events.trigger("door:open", name);
            }
        };

        //create objects
        var controlPanel = new ControlPanel();
        var george = new CustomerService("George");

        controlPanel.events.on("door:open", george.alert);

        var chris = new CustomerService("Chris");
        controlPanel.events.on("door:open", chris.alert);

        var frontDoor = new Door("frontDoor");
        frontDoor.open();

        var sideDoor = new Door("sideDoor");
        sideDoor.open();

        alert("george unsubscirbe from door:open event");

        controlPanel.events.off("door:open", george.alert)
        sideDoor.open();