Data에 꼬리표를 붙이다.
기본 형식 : _
+ Variable Name
+ -
+ Tail Function
_VariableName-TailFunction
Html
태그에 적용하는 법 : 필요한 기능 만큼 class 에 추가
class="_VariableName-TailFunction _VariableName-TailFunction ... _VariableName-TailFunction"
동일한 변수로 여러가지 Tail Function
을 처리하는 경우 Variable Name
생략가능 (이 경우 실행순서를 정할 수 있습니다.)
class="_test-text _test-title _test-id"
class="_test-text-title-id"
data-
, aria-
는 무조건 하나의 Tail Function
으로 처리됩니다.
class="_test-data-text-title-id" // data-text-title-id="변수값" 형태로 적용된다.
데이터를 반영하는 법 : 옵션은 생략가능
TagWire.render( TARGET, DATA, OPTION );
jQuery Library
를 사용하는 경우, TagWire
관련 plugin
이 설정됩니다.
jQuery( TARGET ).render( DATA, OPTION );
사용자가 정의하는 Tail Function
: 호출 될 때 타겟 엘리먼트, 변수값, 변수명이 파라미터로 전달됩니다.
TagWire.tail.FunctionName = function( target, value, name ) { ... };
아래 단어들, 특히 밑줄이 그어진 단어는 가급적이면 dataset
내에서 변수(속성)명으로 사용하지 않아야 합니다.
template
array
reverse
topdown
bottomup
tidx
idx
i
fix
item
new
old
render
block
capture
clone
hidden
objdata
itemdata
listdata
list
itemtype
async
ready
finish
complete
태그의 속성에 변수의 값을 입력합니다. Html
태그의 표준 속성은 모두 Tail Function
으로 사용할 수 있으나, 비표준 속성은 태그에 선언되어 있어야 값이 적용됩니다.
변수의 값을 텍스트로 출력합니다.
변수의 값을 html
코드로 입력합니다.
변수의 값을 value
에 넣습니다. 태그의 속성을 설정하는 _변수명-value
와 동일한 기능을 하지만, -val
은 {element}.value
로 처리됩니다.
변수의 값을 data-변수명
속성에 저장합니다. 만약 _변수명-data-이름
형태로 설정하면, data-이름
으로 속성이 설정됩니다.
* 주의 : 변수명
이나 이름
은 태그의 속성으로 설정되기 때문에 대/소문자를 구분하지 않고 모두 소문자로 적용됩니다.
엘리먼트의 텍스트 노드에서 #변수명#
으로 들어있는 부분을 변수의 값으로 변환합니다. -replace
와의 차이점은 하위 엘리먼트에 영향을 주지 않고 자신의 텍스트만 변경합니다. 따라서 자식노드의 이벤트 처리 등이 유지됩니다.
엘리먼트 하위에 있는 모든 #변수명#
부분을 변수의 값으로 변환합니다. -insert
와의 차이점은 innerHTML
을 이용하여 내부 html
을 다시 입력하는 방식입니다.
태그 속성에서 #변수명#
으로 들어있는 부분을 변수의 값으로 변환합니다.
변수의 값이 true
인 경우 element를 노출합니다. false
인 경우는 display:none;
처리 합니다.
* 변수의 값이 false
로 처리되는 조건은, false
, null
, undefined
, 0
, ""
, "false"
, "null"
, "undefined"
, "0"
인 경우입니다.
-show
와 반대의 처리를 합니다. 변수의 값이 true
인 경우 element를 display:none;
처리합니다.
* 변수의 값이 false
로 처리되는 조건은, false
, null
, undefined
, 0
, ""
, "false"
, "null"
, "undefined"
, "0"
인 경우입니다.
변수의 값이 true
인 경우 element를 보존합니다. false
인 경우는 삭제합니다.
* 변수의 값이 false
로 처리되는 조건은, false
, null
, undefined
, 0
, ""
, "false"
, "null"
, "undefined"
, "0"
인 경우입니다.
-keep
과 반대의 처리를 합니다. 변수의 값이 true
인 경우 element를 삭제합니다. false
인 경우는 보존합니다.
* 변수의 값이 false
로 처리되는 조건은, false
, null
, undefined
, 0
, ""
, "false"
, "null"
, "undefined"
, "0"
인 경우입니다.
변수의 값이 true
인 경우, 변수명을 class
로 추가합니다. false
인 경우 변수명을 class
에서 삭제합니다. -_setClass
형태로 _
를 붙이면 반대로 false
일때 class
를 추가합니다.
* 변수의 값이 false
로 처리되는 조건은, false
, null
, undefined
, 0
, ""
, "false"
, "null"
, "undefined"
, "0"
인 경우입니다.
변수의 값을 class
에 추가합니다.
변수의 값과 동일한 class
를 삭제합니다.
브라우저의 console
에 현재 element와 변수값을 출력해줍니다. TagWire
가 제대로 동작하는지 확인을 하기 위해 사용할 수 있습니다.
기본적으로 정의된 -text
, -html
같은 Tail Function
을 사용자가 정의할 수 있습니다. TagWire.tail
에 선언 하는 사용자 정의 함수는 기본 Tail Function
이 실행 된 후에 실행됩니다. 만약 내장 함수와 동일한 이름으로 정의하는 경우, 내장 함수에 override
됩니다. 정의한 함수를 삭제하면 다시 내장 함수가 동작됩니다.
사용자 정의 tail
함수의 리턴값은 연달아 사용하는 다음 tail
함수의 value
에 전달됩니다. 만약 리턴값이 없거나 undefined
인 경우는 앞에서 전달된 값을 그대로 다음으로 전달합니다.
Object
나 array
내부의 값을 사용하기 위해서는, 사용하려는 element에 _객체명
형태로 선언을 해야합니다. 이렇게 선언된 element와 그 하위에서만 해당 object
내부의 값들을 사용할 수 있게 됩니다.
데이터를 적용할 element를 지정하면, 해당 element에서만 render
하는 데이터를 사용 할 수 있습니다.
Object
의 변수명이 global
이면, render
할 다른 데이터를 우선적으로 적용한 후 global
데이터를 처리합니다. 예를 들어 _template
처럼 동적으로 생성되는 element에 공통된 값을 적용해야 하는 경우 사용할 수 있습니다.
Render
하는 object
나 array
데이터가 화면에 즉시 반영되지 않아도 되는 경우는, 다른 부분의 처리가 우선되도록 _async
옵션을 이용하여 비동기로 처리할 수 있습니다.
Object
데이터를 해당 element에 render
해줍니다. 배열의 인자가 object
일 때, 별도로 render
처리하는 용도 등으로 사용할 수 있습니다.
_block
옵션이 설정된 element는, 해당 element에 설정된 모든 object
무력화 시켜 데이터가 반영되지 않게 막습니다. 상위나, 하위에서 선언된 object
는 막지 않습니다.
배열의 길이값을 사용할 수 있습니다. Object
하위 데이터와 마찬가지로, _배열
이 추가된 엘리먼트 범위내에서 사용가능합니다.
Array
를 이용한 반복적인 태그 구조를 만들기 위해, 리스트의 컨테이너가 될 element에 -list
를 선언합니다. Array
도 object
처럼, 리스트를 선언한 element나 그 상위의 element에서 array
변수명을 선언해서 사용할 범위를 지정해야 합니다.
리스트를 만들기 위해서 꼭 ul
, ol
, dl
같은 태그를 사용할 필요는 없습니다. 어떤 태그도 사용가능합니다.
배열의 요소값을 사용하려면 배열의 변수명 뒤에 index
를 붙인 상태로 처리합니다. 예를 들어 첫번째 인자를 사용하려면 _배열-0-함수명
형태가 됩니다. 이 기능은 컨테이너 엘리먼트에 _array
가 선언되어 있어야합니다.
리스트를 생성한 상태에서 array
의 데이터를 element에 반영하는 방법은 3종류가 있습니다.
인자가 string
, number
, boolean
으로 구성된 경우, 인자값을 참조하기 위한 변수명이 없기 때문에, _item
키워드를 이용합니다.
인자가 object
인 경우는 해당 object
내에 있는 변수를 그대로 사용합니다.
인자가 array
인 경우는 _item-list
내용을 참고하세요.
다중배열인 경우, 리스트를 생성한 element 하위에서 다시 리스트를 생성할 수 있습니다.
0부터 시작하는 index
를 사용할 수 있습니다.
1부터 시작하는 index
를 사용할 수 있습니다.
1부터 시작하는 고유한 index
를 사용할 수 있습니다. i
나 idx
는 리스트가 새로 생성되면 항상 0 혹은 1로 시작하지만, tidx
는 지금까지 뿌려진 template
의 수가 누적되어 증가합니다. _bottomup
옵션이 있으면 아래부터 위로 갈 수록 숫자가 커집니다.
배열데이터를 사용합니다. -list
로 선언한 element에서만 사용할 수 있습니다.
배열의 인자 데이터를 사용합니다. _template
로 선언한 element에서만 사용할 수 있습니다.
하나의 리스트에 선언된 여러개의 template
중, 변수의 값에 따라 동적으로 선택하여 추가할 수 있습니다.
리스트에서 반복적으로 표시 할 element에 선언합니다. -list
의 자식노드만 선언할 수 있으며, 어떠한 형태라도 상관 없습니다.
배열의 요소값을 개별적으로 사용 할 때, 해당 컨테이너에 _array
를 선언해야 합니다.
이 옵션를 선언한 리스트는 배열을 render
할 때, 기존에 생성된 리스트를 삭제하지 않고, 그 하단에 계속해서 추가합니다.
이 옵션를 선언한 리스트는 배열을 render
할 때, 기존에 생성된 리스트를 삭제하지 않고, 그 상단에 계속해서 추가합니다. 보통 가장 최근의 리스트가 상단에 표시되는 경우 사용합니다. 단, 배열의 순서는 전달된 순서대로 표시되므로, 순서를 뒤집어야 하는 경우 _reverse
옵션를 사용합니다.
배열을 역순으로 반영합니다.
리스트를 지정한 수만큼 제한합니다.
이 키워드는 리스트가 생성될 때 자동으로 추가됩니다. _item
은 생성된 모든 리스트에 추가되고, _new
는 가장 마지막에 render
한 리스트에 추가되며, _old
는 마지막 render
직전까지 추가되어 있던 리스트입니다.
원래 상태를 보존해야 할 필요가 있는 경우 _capture
옵션을 추가합니다. 이 옵션이 있는 경우 최초 render
시점에 변형하기 전 형태를 저장합니다. 원형이 저장된 상태가 되면 _capture
class
는 삭제하고, _clone
class
가 추가됩니다.
변수의 값이 true
면, 해당 element를 삭제하고 _capture
로 저장한 원형으로 교체합니다. -_restore
형태로 사용하면 false
일 때 복구합니다.
변수의 값이 true
면, 해당 element의 모든 속성값을 _capture
로 저장한 원형으로 복구합니다. -_restoreAttr
형태로 사용하면 false
일 때 복구합니다.
변수의 값이 true
면, 해당 element의 내용을 _capture
로 저장한 원형의 내용으로 교체합니다. -_restoreText
형태로 사용하면 false
일 때 복구합니다.
변수의 값이 true
면, 해당 element의 html
태그를 _capture
로 저장한 원형으로 교체합니다. -_restoreHtml
형태로 사용하면 false
일 때 복구합니다.
변수의 값이 true
면, 해당 element를 자식 노드를 _capture
로 저장한 원형으로 교체합니다. -_restore
형태로 사용하면 false
일 때 복구합니다.
_template
과 _capture
는 항상 display:none;
상태로 숨겨집니다.
TagWire
의 render
직전에 함수를 호출합니다. 즉 모든 Tail Function
이 호출되기 전에 처리되며, 함수에 TagWire.render
에서 전달한 데이터를 파라미터로 전달합니다. 함수의 return
값이 false
이면 render
처리가 취소됩니다.
TagWire
의 render
직후에 함수를 호출합니다. 즉 모든 Tail Function
이 호출된 후에 처리되며, 함수에 TagWire.render
에서 전달한 데이터를 파라미터로 전달합니다.
TagWire
의 render
가 완전히 끝난 후 함수를 호출합니다. 함수에 TagWire.render
에서 전달한 데이터를 파라미터로 전달합니다.
특정 object
나 array
의 render
직전에 함수를 호출합니다. 즉 해당 데이터에서 처리할 모든 Tail Function
이 호출되기 전에 처리되며, 대상 object
나 array
를 함수의 파라미터로 전달합니다. 함수의 return
값이 false
이면 render
처리가 취소됩니다.
특정 object
나 array
의 render
직후에 함수를 호출합니다. 즉 해당 데이터에서 처리할 모든 Tail Function
이 호출된 후에 처리되며, 대상 object
나 array
를 함수의 파라미터로 전달합니다.
TagWire
의 render
가 완전히 끝난 후 함수를 호출합니다. 대상 object
나 array
를 함수의 파라미터로 전달합니다.
Array
의 개별 리스트를 생성하기 직전에 함수를 호출합니다. 호출하는 함수에 대상 array
의 인자를 파라미터로 전달합니다. 함수의 return
값이 false
인 경우 리스트를 생성하지 않습니다.
Array
의 개별 리스트를 생성하고 나서 함수를 호출합니다. 호출하는 함수에 대상 array
의 인자를 파라미터로 전달합니다.
TagWire
의 render
가 완전히 끝난 후 함수를 호출합니다. 호출하는 함수에 대상 array
의 인자를 파라미터로 전달합니다.