Jsrender: لا يمكن الوصول إلى متغير في {{for}}

تم إنشاؤها على ١٥ يونيو ٢٠١٢  ·  3تعليقات  ·  مصدر: BorisMoore/jsrender

مرحبا بوريس ،

أقوم بتمرير ما يلي إلى النموذج
{'items': items، Rank: true}

العناصر هي مجموعة من الكائنات

في القالب الخاص بي ، لدي

{{للعناصر}}
{{إذا (مرتبة)}} {{: # index}} {{/ if}}
{{/ل}}

لكن يبدو أن المتغير "المرتبة" لا يفعل شيئًا.

التعليق الأكثر فائدة

حسنًا ، ضمن {{للعناصر}} سياق البيانات (عنصر البيانات الحالي) هو عنصر مصفوفة العناصر.
لذا فأنت تختبر عنصرًا باستخدام item.ranked == true. لكن الخاصية المصنفة الخاصة بك موجودة على الكائن الذي يحتوي على خاصية العناصر ، وليس على العنصر. ربما تريد

{{for items}}
   {{if #parent.parent.data.ranked)}}{{:#index}}{{/if}}
{{/for}}

هناك طريقة أخرى يمكنك استخدامها وهي إنشاء متغير قالب ينسخ الخاصية المصنفة ويجعلها قابلة للوصول إلى القوالب المتداخلة عبر سياق القالب:

{{for items ~isRanked=ranked}}
   {{if ~isRanked)}}{{:#index}}{{/if}}
{{/for}}

لا يتم عرض خصائص البيانات تلقائيًا في السياقات المتداخلة. (لا توجد كتلة with (data) {} في JsRender). لكن معلمات النموذج توفر طريقة أفضل للاشتراك في عرض المتغيرات للسياقات المتداخلة ...

ال 3 كومينتر

حسنًا ، ضمن {{للعناصر}} سياق البيانات (عنصر البيانات الحالي) هو عنصر مصفوفة العناصر.
لذا فأنت تختبر عنصرًا باستخدام item.ranked == true. لكن الخاصية المصنفة الخاصة بك موجودة على الكائن الذي يحتوي على خاصية العناصر ، وليس على العنصر. ربما تريد

{{for items}}
   {{if #parent.parent.data.ranked)}}{{:#index}}{{/if}}
{{/for}}

هناك طريقة أخرى يمكنك استخدامها وهي إنشاء متغير قالب ينسخ الخاصية المصنفة ويجعلها قابلة للوصول إلى القوالب المتداخلة عبر سياق القالب:

{{for items ~isRanked=ranked}}
   {{if ~isRanked)}}{{:#index}}{{/if}}
{{/for}}

لا يتم عرض خصائص البيانات تلقائيًا في السياقات المتداخلة. (لا توجد كتلة with (data) {} في JsRender). لكن معلمات النموذج توفر طريقة أفضل للاشتراك في عرض المتغيرات للسياقات المتداخلة ...

لدي جدول بيانات jquery حيث أعرض صفوفًا فرعية باستخدام عرض js. لكل من العمودين في الجدول ، تأتي البيانات من مصفوفتين مختلفتين. إذن كيف يمكنني تقسيم البيانات إلى صفين منفصلين يتم عرضهما حاليًا كقائمة مفصولة بفاصلة

@ Krish2215 : هذا للإبلاغ عن الأخطاء والمشكلات الأخرى ، وليس لأسئلة المساعدة العامة. يمكنك تجربة stackoverflow https://stackoverflow.com/questions/tagged/jsrender. لكنك ستحتاج إلى تقديم سياق أكثر تحديدًا ، ومن الناحية المثالية jsfiddle لإظهار الصعوبة التي تواجهها بالضبط ....

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات