blob: 7f09be54f6a5b59f4a99c64263c67dea1e084a20 (
plain)
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
|
class csx.AutoView extends Backbone.View
@views: {}
@constructors: {}
@viewName: (name) ->
@constructors[name] = this
@::name = name
@install: (element) ->
name = $(element).data('autoview')
constructor = @constructors[name]
@create(name, element, constructor)
@create: (name, element, constructor) ->
if constructor == undefined
console.error("Could not find autoview at #{name}")
return
view = new constructor
el: element
$el: $(element)
model: @discoverModel($(element))
view.render()
key = name.replace(".", '-')
@views[key] ?= []
@views[key].push(view)
@discoverModel: (element) ->
modelName = element.data('automodel')
return if _.isUndefined(modelName)
new csx.Models[modelName]()
render: -> @
|