Mustache.js: كرر على أزواج مفتاح / قيمة الكائن؟

تم إنشاؤها على ٢٨ مايو ٢٠١٥  ·  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 هذا مبدأ أساسي من Moustache. يجب استخراج كل المنطق في طريقة عرض تختلف عن النموذج. في هذه الحالة ، يبدو الأمر أكثر صعوبة لأنه مجرد منطق بسيط ، ولكن هذا منحدر زلق لا يسمح لك موستاش بالهبوط فيه :)

عادل بما يكفي. شكرا على الشرح!

المبدأ الأساسي الذي تمت الإشارة إليه في الأصل ، يجعل Moustache شديد الرأي ، ولا أريد دائمًا ترتيب مرحلة تحويل منفصلة لجعل Moustache سعيدًا ...

هل السماح بالتكرار على كائن بسيط يقدم حقًا المنطق في عرض الشارب؟ ستكون حجتي لا. أنا معجب بمبدأ عدم المنطق ، لكن يمكننا بالفعل تكرار المصفوفات ، وأنا أتفق مع 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 ... لا يوجد خيار في Moustache لاستخدام مراجع مجهولة؟

baseten ، about yor "لكن يجب أن يكون" أعلاه ، هذه هي المشكلة ، قبيح لفرض تحويلات بنية البيانات ...

إنه ليس حلاً أنيقًا ، لكني أستخدم res.render('index', objs2list(obj)) حيث ربما توجد طريقة مساعد Moustache لإجراء التحويل ،

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 التقييمات

القضايا ذات الصلة

kuldeepdhaka picture kuldeepdhaka  ·  9تعليقات

amper5and picture amper5and  ·  5تعليقات

barbalex picture barbalex  ·  5تعليقات

rlightner picture rlightner  ·  7تعليقات

connor11528 picture connor11528  ·  3تعليقات