-
Notifications
You must be signed in to change notification settings - Fork 0
/
RowView.js
65 lines (47 loc) · 1.09 KB
/
RowView.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
var CellView = Marionette.ItemView.extend({
tagName: "td",
modelEvents: {
"change" : "render",
"column:chnage:width" : "render"
},
//events: {
//"click" : "_handelClick"
//},
template: Handlebars.compile("{{t}}"),
render: function() {
Marionette.ItemView.prototype.render.apply(this, arguments);
var width = this.model.getColumn().get("width");
this.$el.css("width", width + "%");
},
_handelClick: function() {
this.model.updateColumnTitle();
}
});
var RowView = Marionette.CollectionView.extend({
tagName: "tr",
childView: CellView,
modelEvents: {
"select": "hl",
"deselect": "cl"
},
events: {
"click": "_click"
},
initialize: function(attrs) {
this.collection = attrs.model.getCells();
},
hl: function() {
this.$el.addClass("selected");
},
cl: function() {
this.$el.removeClass("selected");
},
_click: function() {
alert([this.model.get("id")]);
this.model.getTable().set({selectedRows: [this.model.get("id")]});
}
});
var RowCollectionView = Marionette.CollectionView.extend({
tagName: "tbody",
childView: RowView
});