1 | var util = require("./util"),
|
2 | _ = require("underscore"),
|
3 | Binding = require("./binding");
|
4 |
|
5 | exports.forceUpdate = function() {
|
6 | if (this.binding != null) this.binding.render(this);
|
7 | return this;
|
8 | }
|
9 |
|
10 | exports.paint = function(parent, beforeNode) {
|
11 | if (this.binding == null) {
|
12 | this.binding = this.render();
|
13 | this.forceUpdate();
|
14 | this.emit("render", this.binding);
|
15 | }
|
16 |
|
17 | if (_.isString(parent)) parent = document.querySelector(parent);
|
18 | if (_.isString(beforeNode)) beforeNode = parent.querySelector(beforeNode);
|
19 | if (parent == null) parent = document.createDocumentFragment();
|
20 |
|
21 | this.binding.appendTo(parent, beforeNode);
|
22 | this.emit("paint", parent, beforeNode);
|
23 |
|
24 | return this;
|
25 | }
|
26 |
|
27 | exports.render = function() {
|
28 | throw new Error("Missing render method.");
|
29 | }
|
30 |
|
31 | exports.erase = function() {
|
32 | if (this.binding != null) {
|
33 | this.binding.destroy();
|
34 | delete this.binding;
|
35 | this.emit("erase");
|
36 | }
|
37 |
|
38 | return this;
|
39 | }
|
40 |
|
41 | exports.toHTML = function() {
|
42 | var binding, html;
|
43 |
|
44 | binding = this.render();
|
45 | html = binding.toString();
|
46 | binding.destroy();
|
47 |
|
48 | return html;
|
49 | }
|
50 |
|
51 | exports.find = function(selector) {
|
52 | if (this.binding != null) return this.binding.find(selector);
|
53 | return null;
|
54 | }
|
55 |
|
56 | exports.findAll = function(selector) {
|
57 | if (this.binding != null) return this.binding.findAll(selector);
|
58 | return [];
|
59 | }
|
60 |
|
61 |
|
62 |
|
63 |
|
64 |
|
65 |
|
66 |
|
67 |
|
68 |
|
69 |
|
70 |
|
71 |
|
72 |
|
73 |
|
74 |
|
75 |
|
76 |
|
77 |
|
78 |
|
\ | No newline at end of file |