/ / स्ट्रिंग स्ट्रिंग को लूप के अंदर बदलें - सिम्फनी, ट्विग

स्ट्रिंग वैरिएबल को लूप के अंदर बदलें - सिम्फनी, टवीग

मेरे पास टहनी / सिम्फनी में एक लूप है, जैसे:

{% for breadcrumb in page.breadcrumbs %}
<a href="{{ breadcrumb.url | url }}">{{ breadcrumb.title }}</a>
{% endfor %}

मैं लूप के लिए पहले वेरिएबल की जांच करने की कोशिश कर रहा हूं Artists फिर HTML भाग को कोड के एक नए टुकड़े से बदलना होगा।

तो मैंने क्या किया:

 {% for breadcrumb in page.breadcrumbs %}

{% if loop.first %}
{% if breadcrumb.title == "Artists" %}
<a href="{{ "artists" | url }}">{{ "Artists" | t }}</a>{% else %}<a href="{{ breadcrumb.url | url }}">{{ breadcrumb.title }}</a>
{% endif %}
{% endif %}

{% endfor %}

यह तब काम करता है जब ब्रैडक्रम्ब का रास्ता गहरा होता है, फिर दो लेवल के बाद दूसरा लेवल isn "t" के बाद सब कुछ दिखाया जाता है। तो मेरे कहने का मतलब यह है:

home > Artist > //nothing shown here anymore. Loop stops I think??

Instead of

home > artists > category1 > subcategory 2

क्या कोई जानता है कि मुझसे क्या गलती हो रही है। इस कोड के साथ लूप क्यों बंद हो जाता है?

उत्तर:

उत्तर № 1 के लिए 1

लूप चलता रहता है, लेकिन आपने पूरे आउटपुट लॉजिक को इसमें लपेट दिया है loop.first परिवर्तनशील स्थिति।

आपको इसके बजाय यह करने की आवश्यकता है:

{% for breadcrumb in page.breadcrumbs %}
{% if loop.first and breadcrumb.title == "Artists" %}
<a href="{{ "artists" | url }}">{{ "Artists" | t }}</a>
{% else %}
<a href="{{ breadcrumb.url | url }}">{{ breadcrumb.title }}</a>
{% endif %}
{% endfor %}

इस तरह से आप के लिए जाँच कर रहे हैं दोनों लूप की पहली पुनरावृत्ति और "शीर्षक" कलाकार हैं या नहीं


जवाब के लिए 0 № 2

आप केवल पहले पुनरावृत्ति (पहले लूप) की जाँच कर रहे हैं, और बाकी के साथ कुछ भी न करें:

{% for breadcrumb in page.breadcrumbs %}

{% if loop.first %}
{% if breadcrumb.title == "Artists" %}
<a href="{{ "artists" | url }}">{{ "Artists" | t }}</a>
{% else %}
<a href="{{ breadcrumb.url | url }}">{{ breadcrumb.title }}</a>
{% endif %}
{% endif %}

{% endfor %}