@@ -6,66 +6,46 @@ function getElementsByQuery(query, add = false) {
66 }
77 var className = queryParts [ 1 ]
88 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- }
149 return elements
1510}
1611
17- function assign ( a , b )
18- {
12+ function assign ( a , b ) {
1913 a . value = typeof b === "function" ? b ( a . value ) : b
20- var elements = getElementsByQuery ( a . path )
2114
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 )
3517
36- for ( var i = 0 , n = elements . length ; i < n ; i ++ ) {
37- elements [ i ] . innerHTML = content
18+ if ( elements . length === 0 ) {
19+ return
3820 }
39- }
40- else {
41- for ( var i = 0 , n = elements . length ; i < n ; i ++ ) {
42- elements [ i ] . textContent = a . value
43- }
44- }
4521
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 ]
5923
6024 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+ }
6247 }
6348 }
6449
6550 // TODO: обновить все связи по template functions которые используют данную переменную
66- }
67-
68- function get ( a )
69- {
70- return a . value
7151}
0 commit comments