Mustache.js: 객체 ν‚€/κ°’ μŒμ„ λ°˜λ³΅ν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ?

에 λ§Œλ“  2015λ…„ 05μ›” 28일  Β·  11μ½”λ©˜νŠΈ  Β·  좜처: janl/mustache.js

객체의 ν‚€/κ°’ μŒμ„ λ°˜λ³΅ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

λ‹€μŒ 예λ₯Ό κ³ λ €ν•˜μ‹­μ‹œμ˜€.

var values = {
  'single': 'Single bed',
  'double': 'Double bed',
  'twin': 'Twin beds'
};

μƒμ‘ν•˜λŠ” handlebar.js μ½”λ“œ:

<select name="bed_type">
{{#values}}
  <option value="{{@key}}">{{this}}</option>
{{/values}}
</select>

mustache.js둜 ν•  방법을 찾지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€.

감사 ν•΄μš”.

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

λ‹¨μˆœν•œ 객체에 λŒ€ν•œ λ°˜λ³΅μ„ ν—ˆμš©ν•˜λŠ” 것이 μ‹€μ œλ‘œ μ½§μˆ˜μ—Ό 보기에 논리λ₯Ό λ„μž…ν•˜λŠ” κ²ƒμž…λ‹ˆκΉŒ? λ‚΄ μ£Όμž₯은 μ•„λ‹ˆμ˜€μž…λ‹ˆλ‹€. λ‚˜λŠ” 논리가 μ—†λŠ” μ›μΉ™μ˜ νŒ¬μ΄μ§€λ§Œ 이미 배열을 λ°˜λ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이것이 λΆˆν•„μš”ν•˜κ²Œ μ–΄μƒ‰ν•˜λ‹€λŠ” OP에 λ™μ˜ν•©λ‹ˆλ‹€. λ‹€μŒ 예λ₯Ό κ³ λ €ν•˜μ‹­μ‹œμ˜€.

λ‚΄ λ°μ΄ν„°λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

"attr": {
  "class": "foo",
  "href": "/somewhere"
}

ν•˜μ§€λ§Œ λ‹€μŒκ³Ό κ°™μ•„μ•Ό ν•©λ‹ˆλ‹€.

"attr": [
  {
    "key": "class",
    "value": "foo"
  },
  {
    "key": "href",
    "value": "/somewhere"
  }
]

λ Œλ”λ§ν•˜λ €λ©΄:

<a{{#attr}} {{ key }}="{{ value }}"{{/attr}}></a>

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

μ•ˆλ…•ν•˜μ„Έμš” @chlabμž…λ‹ˆλ‹€!

데이터λ₯Ό λ Œλ”λŸ¬μ— 직접 μ „λ‹¬ν•˜λŠ” λŒ€μ‹  view 개체둜 ν˜•μ‹μ„ 지정해야 ν•©λ‹ˆλ‹€. λ˜λŠ” μ‚¬μš©μž μ •μ˜ λ„μš°λ―Έλ₯Ό μ‚¬μš©ν•˜μ‹­μ‹œμ˜€. μ΄λŸ¬ν•œ stackoverflow μŠ€λ ˆλ“œμ— λŒ€ν•œ λͺ‡ 가지 아이디어가 μžˆμŠ΅λ‹ˆλ‹€.

http://stackoverflow.com/questions/9058774/handlebars-mustache-is-there-a-built-in-way-to-loop-through-the-properties-of
http://stackoverflow.com/questions/9981907/how-to-iterate-over-a-hash-in-mustache-js

아직 λͺ…ν™•ν•˜μ§€ μ•Šμ€ 경우 μ•Œλ €μ£Όμ‹­μ‹œμ˜€. 건배!

@dasilvacontin κ°μ‚¬ν•©λ‹ˆλ‹€.
κ·Έλ ‡κ²Œ ν•˜λŠ” 것은 κ½€ μ–΄μƒ‰ν•œ 방법인 것 κ°™κ΅°μš”, κ·Έλ ‡μ£ ? κ·Έ μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ? ν•Έλ“€λ°” 방식이 훨씬 κ°„νŽΈν•˜μ§€ μ•Šμ„κΉŒμš”?
건배

@chlab 이것은 Mustache의 κΈ°λ³Έ μ›λ¦¬μž…λ‹ˆλ‹€. λͺ¨λ“  λ…Όλ¦¬λŠ” ν…œν”Œλ¦Ώκ³Ό λ™μΌν•˜μ§€ μ•Šμ€ 보기둜 μΆ”μΆœλ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. 이런 경우 μ•½κ°„μ˜ 논리가 μžˆμ–΄μ„œ 더 어색해보이기도 ν•˜μ§€λ§Œ, μ½§μˆ˜μ—Όλ„ μ“°λŸ¬μ§€μ§€ μ•ŠλŠ” λ―Έλ„λŸ¬μš΄ λΉ„νƒˆκΈΈ :)

그럴 수 μžˆμ§€. μ„€λͺ… κ°μ‚¬ν•©λ‹ˆλ‹€!

μ›λž˜ μ–ΈκΈ‰λœ κΈ°λ³Έ μ›λ¦¬λŠ” μ½§μˆ˜μ—Όμ„ λ„ˆλ¬΄ λ…λ‹¨μ μœΌλ‘œ λ§Œλ“€λ©°, μ½§μˆ˜μ—Όμ„ ν–‰λ³΅ν•˜κ²Œ ν•˜κΈ° μœ„ν•΄ 항상 λ³„λ„μ˜ μ „ν™˜ 단계λ₯Ό λ§ˆλ ¨ν•˜κ³  μ‹Άμ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€...

λ‹¨μˆœν•œ 객체에 λŒ€ν•œ λ°˜λ³΅μ„ ν—ˆμš©ν•˜λŠ” 것이 μ‹€μ œλ‘œ μ½§μˆ˜μ—Ό 보기에 논리λ₯Ό λ„μž…ν•˜λŠ” κ²ƒμž…λ‹ˆκΉŒ? λ‚΄ μ£Όμž₯은 μ•„λ‹ˆμ˜€μž…λ‹ˆλ‹€. λ‚˜λŠ” 논리가 μ—†λŠ” μ›μΉ™μ˜ νŒ¬μ΄μ§€λ§Œ 이미 배열을 λ°˜λ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이것이 λΆˆν•„μš”ν•˜κ²Œ μ–΄μƒ‰ν•˜λ‹€λŠ” OP에 λ™μ˜ν•©λ‹ˆλ‹€. λ‹€μŒ 예λ₯Ό κ³ λ €ν•˜μ‹­μ‹œμ˜€.

λ‚΄ λ°μ΄ν„°λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

"attr": {
  "class": "foo",
  "href": "/somewhere"
}

ν•˜μ§€λ§Œ λ‹€μŒκ³Ό κ°™μ•„μ•Ό ν•©λ‹ˆλ‹€.

"attr": [
  {
    "key": "class",
    "value": "foo"
  },
  {
    "key": "href",
    "value": "/somewhere"
  }
]

λ Œλ”λ§ν•˜λ €λ©΄:

<a{{#attr}} {{ key }}="{{ value }}"{{/attr}}></a>

μ•ˆλ…•ν•˜μ„Έμš” μ—¬λŸ¬λΆ„,

읡λͺ… λͺ©λ‘μ„ μ–΄λ–»κ²Œ λ°˜λ³΅ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? {{#.}} 및 {{/.}}λ₯Ό μ‚¬μš©ν•΄ λ³΄μ•˜μ§€λ§Œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

감사 ν•΄μš”

읡λͺ… λͺ©λ‘μ„ λ°˜λ³΅ν•˜λ €λ©΄

let facts = doc.data(); res.render('index', {facts});

<ul> {{#each facts}} <li>Key: {{@key}} Value = {{this}}</li> {{/each}} </ul>

이 λ¬Έμ œμ— 곡식적인 것이 μžˆμŠ΅λ‹ˆκΉŒ?

ν‚€-κ°’ 쌍이 μžˆλŠ” 읡λͺ… 개체 λͺ©λ‘μ„ μ‹€μ œλ‘œ μ‚¬μš©ν•˜λŠ” 방법은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?

μ œμ•ˆλœ 개체 var values = { 'single': 'Single bed', ...} 와 질문의 μ œμ•ˆλœ 좜λ ₯을 μ‚¬μš©ν•˜μ—¬ μ‹€μ œ 예λ₯Ό λ³΄μ—¬μ£Όμ„Έμš”.

μΆ”μ‹ : @prashantcs8 κ·€ν•˜μ˜ μ˜ˆλŠ” μ‹€μ œμž…λ‹ˆκΉŒ? μž‘λ™ μ•ˆν•¨.

@chlab μš°λ¦¬λŠ” 2018년에 μžˆμŠ΅λ‹ˆλ‹€... Mustache에 읡λͺ… μ°Έμ‘°λ₯Ό μ‚¬μš©ν•˜λŠ” μ˜΅μ…˜μ΄ μ—†λ‚˜μš”?

@baseten , μœ„μ˜ "ν•˜μ§€λ§Œ κ·Έλž˜μ•Όλ§Œ ν•©λ‹ˆλ‹€"λΌλŠ” λ¬Έμ œκ°€ μžˆλŠ”λ°, 데이터 ꡬ쑰 λ³€ν™˜μ„ μ μš©ν•˜λŠ” 것은 보기 흉 ν•©λ‹ˆλ‹€...

μš°μ•„ν•œ μ†”λ£¨μ…˜μ€ μ•„λ‹ˆμ§€λ§Œ λ³€ν™˜μ„ μˆ˜ν–‰ν•˜λŠ” μ½§μˆ˜μ—Ό λ„μš°λ―Έ λ©”μ„œλ“œκ°€ μžˆλŠ” res.render('index', objs2list(obj)) ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

function objs2list(p) {
  r = [];
  for (var key in p) if (p.hasOwnProperty(key)) {
    r.push({"@key":key,"@val":p[key]});
  }
  return r;
}

μ‘΄μž¬ν•˜λ‹€?

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