@@ -6,66 +6,46 @@ function getElementsByQuery(query, add = false) {
6
6
}
7
7
var className = queryParts [ 1 ]
8
8
var elements = document . getElementById ( id ) . getElementsByClassName ( className )
9
- if ( elements . length === 0 && add ) {
10
- var element = document . createElement ( 'div' )
11
- element . classList = className
12
- elements = [ document . getElementById ( id ) . appendChild ( element ) ]
13
- }
14
9
return elements
15
10
}
16
11
17
- function assign ( a , b )
18
- {
12
+ function assign ( a , b ) {
19
13
a . value = typeof b === "function" ? b ( a . value ) : b
20
- var elements = getElementsByQuery ( a . path )
21
14
22
- if ( elements . length === 0 ) {
23
- return
24
- }
25
-
26
- if ( typeof a . value === "object" ) {
27
- var content = "" ;
28
- for ( var i = 0 , n = a . value . length ; i < n ; i ++ ) {
29
- var template = a . template ;
30
- for ( variable in a . value [ i ] ) {
31
- template = template . replace ( "[[" + variable + "]]" , a . value [ i ] [ variable ] )
32
- }
33
- content += template
34
- }
15
+ for ( var path in a . paths ) {
16
+ var elements = getElementsByQuery ( path )
35
17
36
- for ( var i = 0 , n = elements . length ; i < n ; i ++ ) {
37
- elements [ i ] . innerHTML = content
18
+ if ( elements . length === 0 ) {
19
+ return
38
20
}
39
- }
40
- else {
41
- for ( var i = 0 , n = elements . length ; i < n ; i ++ ) {
42
- elements [ i ] . textContent = a . value
43
- }
44
- }
45
21
46
- // TODO: обновить все связи по template functions которые используют данную переменную
47
- }
48
-
49
- function append ( a , b )
50
- {
51
- var elements = getElementsByQuery ( a . path , true ) ;
52
-
53
- if ( typeof a . value === "object" ) {
54
- a . value . push ( b )
55
- var template = a . template
56
- for ( variable in b ) {
57
- template = template . replace ( "[[" + variable + "]]" , b [ variable ] )
58
- }
22
+ var config = a . paths [ path ]
59
23
60
24
for ( var i = 0 , n = elements . length ; i < n ; i ++ ) {
61
- elements [ i ] . innerHTML += template ;
25
+ switch ( config . format ) {
26
+ case "raw" :
27
+ elements [ i ] . textContent = a . value
28
+ break
29
+ case "value" :
30
+ elements [ i ] . value = a . value
31
+ break
32
+ case "html" :
33
+ var content = "" ;
34
+ for ( var i = 0 , n = a . value . length ; i < n ; i ++ ) {
35
+ var template = config . template ;
36
+ for ( variable in a . value [ i ] ) {
37
+ template = template . replace ( "[[" + variable + "]]" , a . value [ i ] [ variable ] )
38
+ }
39
+ content += template
40
+ }
41
+
42
+ for ( var i = 0 , n = elements . length ; i < n ; i ++ ) {
43
+ elements [ i ] . innerHTML = content
44
+ }
45
+ break
46
+ }
62
47
}
63
48
}
64
49
65
50
// TODO: обновить все связи по template functions которые используют данную переменную
66
- }
67
-
68
- function get ( a )
69
- {
70
- return a . value
71
51
}
0 commit comments