Handlebars.js: μ •μˆ˜ λ¬Έμžμ—΄μ„ ID둜 μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2011λ…„ 06μ›” 27일  Β·  10μ½”λ©˜νŠΈ  Β·  좜처: handlebars-lang/handlebars.js

ν•Έλ“€ λ°”λ‘œ μž‘μ—… ν•œ 것은 처음 λͺ‡ μ‹œκ°„μ΄λΌμ„œ λ­”κ°€ λ†“μΉœ 것 κ°™μ§€λ§Œ .....

λ‹€μŒκ³Ό 같은 데이터λ₯Ό μ‚¬μš©ν•˜λ©΄ {status : { "200": 4, "304": 10}} μ •μˆ˜μ˜ λ¬Έμžμ—΄ ν‘œν˜„μ„ ν‚€λ‘œ μ‚¬μš©ν•˜μ—¬ ν•΄λ‹Ή ν•­λͺ©μ— μ•‘μ„ΈμŠ€ ν•  μˆ˜μ—†λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 이 ν…œν”Œλ¦Ώμ€ λ‚˜λ₯Ό μœ„ν•΄ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ (1.0.3beta νŒ¨ν‚€μ§€ μ‚¬μš©).

{{# μƒνƒœ 포함}}
{{#if 200}} 확인 : {{200}} {{/ if}}
{{/와}}

{{200}}은 ꡬ문 뢄석 였λ₯˜ "EXPECTING ID"λ₯Ό λ°œμƒμ‹œν‚΅λ‹ˆλ‹€. ν…œν”Œλ¦Ώμ— {{ "200"}}이 포함 된 κ²½μš°μ—λ„ λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€. ν₯λ―Έλ‘­κ²Œλ„ {{#if 200}}이 잘 μž‘λ™ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λŒ€κ΄„ν˜Έκ°€ ν•΄κ²° λ°©λ²•μœΌλ‘œ λ„μ›€μ΄λœλ‹€λŠ” 것을 μ•„λŠ” 것이 μ’‹μ§€λ§Œμ΄ λ™μž‘μ΄ μ½§μˆ˜μ—Όκ³Όμ˜ ν•˜μœ„ ν˜Έν™˜μ„±μ„ κΉ¨λœ¨λ¦°λ‹€λŠ” 점을 μ§€μ ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€.

μž‘μ„±ν•˜μ—¬ λ¦¬ν„°λŸ΄ 인덱슀둜 λ°°μ—΄ μš”μ†Œμ— μ•‘μ„ΈμŠ€ν•˜λŠ” μ½§μˆ˜μ—Ό ν…œν”Œλ¦Ώμ΄ μžˆμŠ΅λ‹ˆλ‹€.

{{someArray.0}}

κ·ΈλŸ¬λ‚˜ λ‚΄ 앱을 μ½§μˆ˜μ—Όμ—μ„œ ν•Έλ“€ λ°”λ‘œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•˜λ €κ³  ν•  λ•Œ (ν…œν”Œλ¦Ώμ΄ λͺ¨λ‘ μž‘λ™ν•œλ‹€κ³  κ°€μ •) μˆ˜λ§Žμ€ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

` 'ID'μ˜ˆμƒ, 'INTEGER'νšλ“ ''

λ‹€ν–‰νžˆλ„ κ·Έ ν‘œν˜„μ„

{{someArray.[0]}}

문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. μ•„λ§ˆλ„ μ½§μˆ˜μ—Ό ν˜Έν™˜μ„±μ— λŒ€ν•œμ΄ μ‹€ν—˜μ„ μ§€μ›ν•˜κΈ° μœ„ν•΄ μ–Έμ–΄λ₯Ό 쑰금 ν™•μž₯ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

감사

λͺ¨λ“  10 λŒ“κΈ€

ν•Έλ“€ λ°”μ—μ„œ μ •μˆ˜λŠ” INTEGER둜 토큰 ν™”λ©λ‹ˆλ‹€. 일련의 문자λ₯Ό λŒ€κ΄„ν˜Έλ‘œ λ¬Άμ–΄ μž‘λ™ν•˜λ„λ‘ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

{{#with status}}
  {{#if [200] }} OK: {{ [200] }} {{/if}}
{{/with}}

λŒ€κ΄„ν˜Έκ°€ ν•΄κ²° λ°©λ²•μœΌλ‘œ λ„μ›€μ΄λœλ‹€λŠ” 것을 μ•„λŠ” 것이 μ’‹μ§€λ§Œμ΄ λ™μž‘μ΄ μ½§μˆ˜μ—Όκ³Όμ˜ ν•˜μœ„ ν˜Έν™˜μ„±μ„ κΉ¨λœ¨λ¦°λ‹€λŠ” 점을 μ§€μ ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€.

μž‘μ„±ν•˜μ—¬ λ¦¬ν„°λŸ΄ 인덱슀둜 λ°°μ—΄ μš”μ†Œμ— μ•‘μ„ΈμŠ€ν•˜λŠ” μ½§μˆ˜μ—Ό ν…œν”Œλ¦Ώμ΄ μžˆμŠ΅λ‹ˆλ‹€.

{{someArray.0}}

κ·ΈλŸ¬λ‚˜ λ‚΄ 앱을 μ½§μˆ˜μ—Όμ—μ„œ ν•Έλ“€ λ°”λ‘œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•˜λ €κ³  ν•  λ•Œ (ν…œν”Œλ¦Ώμ΄ λͺ¨λ‘ μž‘λ™ν•œλ‹€κ³  κ°€μ •) μˆ˜λ§Žμ€ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

` 'ID'μ˜ˆμƒ, 'INTEGER'νšλ“ ''

λ‹€ν–‰νžˆλ„ κ·Έ ν‘œν˜„μ„

{{someArray.[0]}}

문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. μ•„λ§ˆλ„ μ½§μˆ˜μ—Ό ν˜Έν™˜μ„±μ— λŒ€ν•œμ΄ μ‹€ν—˜μ„ μ§€μ›ν•˜κΈ° μœ„ν•΄ μ–Έμ–΄λ₯Ό 쑰금 ν™•μž₯ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

감사

@santip ν˜Όλž€ μŠ€λŸ½μŠ΅λ‹ˆλ‹€. μ½§μˆ˜μ—Όμ€ 경둜λ₯Ό μ „ν˜€ μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ½§μˆ˜μ—Όμ—μ„œ μ–΄λ–»κ²Œ {{someArray.0}}을 ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

μ•„, λ‚˜μ˜ λ„€μš”. μ €λŠ” μ‹€μ œλ‘œ hogan.jsλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμ—ˆλŠ”λ° μ½§μˆ˜μ—Όμ—μ„œ μ§€μ›λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” 것을 λͺ°λžμŠ΅λ‹ˆλ‹€.

btw, hogan.jsμ—μ„œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ ν•  λ•Œ 버블 링이 hogan (λ˜λŠ” μ½§μˆ˜μ—Ό)μ—μ„œν–ˆλ˜ κ²ƒμ²˜λŸΌ μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

Handlebars.compile('aaa {{a}} {{#b}}{{c}}{{d}}{{/b}}')({a:1, b:[{c:2}], d:3}) == 'aaa 1 2'

Hogan.compile('aaa {{a}} {{#b}}{{c}}{{d}}{{/b}}').render({a:1, b:[{c:2}], d:3}) == 'aaa 1 23'

Mustache.render('aaa {{a}} {{#b}}{{c}}{{d}}{{/b}}', {a:1, b:[{c:2}], d:3}) == 'aaa 1 23'

../λ₯Ό μ‚¬μš©ν•  λ•Œ μž‘λ™ν•©λ‹ˆλ‹€. 이것이 μ œκ°€ Handlebars둜 μ „ν™˜ ν•œ μ΄μœ μ΄μ§€λ§Œ ν˜Έν™˜μ„± 뢀쑱을 지적 ν•  κ°€μΉ˜κ°€ μžˆλ‹€κ³  μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ 방금 μ½§μˆ˜μ—Όμ„ ν…ŒμŠ€νŠΈν–ˆλŠ”λ° 경둜λ₯Ό μ§€μ›ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

Mustache.render('aaa {{a}} {{b.c}}', {a:1, b:{c:2}, d:3}) == 'aaa 1 2'

예, μ½§μˆ˜μ—Όμ€ 경둜λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€. https://github.com/mustache/spec/blob/master/specs/sections.yml μ—μ„œ # 점으둜 ꡬ뢄 된 이름을 ν™•μΈν•˜μ‹­μ‹œμ˜€.

μ½§μˆ˜μ—Όμ΄ κΈ°λŠ₯을 μΆ”κ°€ ν•œ 것 κ°™μŠ΅λ‹ˆλ‹€. Mustache 사양을 μ˜μ›νžˆ μΆ”μ ν•˜λ„λ‘ λ“±λ‘ν–ˆλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

Mustache 사양이 .<integer> λ™μž‘μ„ μ„€λͺ…ν•˜λŠ” 것 같지 μ•ŠμŠ΅λ‹ˆλ‹€. Handlebars의 foo.[anything] λŠ” λΉ„ μ‹λ³„μž κ²½λ‘œμ—μ„œ 더 잘 μž‘λ™ν•˜μ§€λ§Œ ν™•μ‹€νžˆμ΄ μž‘μ—…μ„ μˆ˜ν–‰ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚΄ μ›λž˜ κ³„νšμ€ "JSμ—μ„œ μœ νš¨ν•œ 점 경둜 인 경우 ν•Έλ“€ λ°”μ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€"μ˜€μŠ΅λ‹ˆλ‹€.

.<integer> 경둜 ν‘œκΈ°λ²•μ„ 지원할 μˆ˜μ—†λŠ” μ΄μœ κ°€ μžˆμŠ΅λ‹ˆκΉŒ?

버블 링을 μ§€μ›ν•΄μ•Όν•œλ‹€κ³  μƒκ°ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 기쑴의 λ§Žμ€ ν•Έλ“€ λ°” ν…œν”Œλ¦Ώμ΄ 손상 될 수 있기 λ•Œλ¬Έμ— λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μˆ˜ν–‰ν•˜λŠ” μ‚¬λžŒλ“€μ˜ 두톡을 덜기 μœ„ν•΄ μ΄λŸ¬ν•œ λΉ„ ν˜Έν™˜μ„±μ— λŒ€ν•΄ μ•Œλ¦¬κΈ° μœ„ν•΄ λ¬Έμ„œμ™€ μ‚¬μ΄νŠΈλ₯Ό μ—…λ°μ΄νŠΈν•΄μ•Ό ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

{{1}} ν˜•μ‹μ˜ μ‹λ³„μžλ₯Ό μ‚¬μš©ν•˜λ €κ³  ν•  λ•Œμ΄ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. Expecting 'ID', 'DATA', got 'NUMBER' λ₯Ό λ˜μ‘ŒμŠ΅λ‹ˆλ‹€. μ •μˆ˜λ₯Ό μ§€μ›ν•˜κ³  μ‹Άμ§€λ§Œ μœ νš¨ν•œ JS λ„νŠΈ 경둜 ꡬ문 만 μ‚¬μš©ν•˜λŠ” @wycats μ ‘κ·Ό 방식을 μ™„μ „νžˆ μ΄ν•΄ν•˜κ³  μ§€μ›ν•©λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ λ‚˜λŠ” λ¬Έμ„œκ°€ 이것을 λ°˜μ˜ν•΄μ•Όν•œλ‹€κ³  μƒκ°ν•œλ‹€. 그듀은 ν˜„μž¬ λ‹€μŒκ³Ό 같이 λ§ν•©λ‹ˆλ‹€.

Identifiers may be any unicode character except for the following:
Whitespace ! " # % & ' ( ) * + , . / ; < = > @ [ \ ] ^ ` { | } ~

μ •μˆ˜κ°€ μœ νš¨ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— μ˜€ν•΄μ˜ μ†Œμ§€κ°€ μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. μ œμ•ˆ λœλŒ€λ‘œ "JSμ—μ„œ μœ νš¨ν•œ 점 경둜 인 경우 ν•Έλ“€ λ°”μ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€"라고 λ§ν•˜λŠ” 것이 훨씬 더 λͺ…ν™•ν•©λ‹ˆλ‹€.

http://handlebarsjs.com/expressions.html

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰