1 |
|
2 | var Backbone = require("backbone");
|
3 | var Class = require("./Class");
|
4 |
|
5 | var _ = require("underscore");
|
6 |
|
7 | var EventedClass = Class.extend("EventedClass", _.extend(Backbone.Events, {
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 | constructor: function(){
|
17 | if(_.isObject(this.events)){
|
18 | for(event in this.events){ var evt = this.events[event];
|
19 |
|
20 | if(_.isFunction(evt)) this.on(event, evt, this);
|
21 |
|
22 | else if(_.isString(evt) && _.isFunction(this[evt])){
|
23 | this.on(event, this[evt], this);
|
24 | }
|
25 |
|
26 | else if(_.isArray(evt)){
|
27 | for(var i = 0;i< evt.length;i++){ var meth = evt[i];
|
28 | if(_.isString(meth) && _.isFunction(this[meth])){
|
29 | this.on(event, this[meth], this);
|
30 | }
|
31 | else if(_.isFunction(meth)){
|
32 | this.on(event, meth, this);
|
33 | }
|
34 | }
|
35 | }
|
36 | }
|
37 | }
|
38 | Class.apply(this, arguments);
|
39 | }
|
40 |
|
41 | }), Backbone.Events);
|
42 | module.exports = EventedClass;
|