Her bir loop'un kapsamı dışındaki bir değişkene erişin


188

Tıpkı bunun gibi bir gidon.js şablonu var:

{{externalValue}}

<select name="test">
    {{#each myCollection}}
       <option value="{{id}}">{{title}} {{externalValue}}</option>
    {{/each}}
</select>

Ve bu üretilen çıktıdır:

myExternalValue

<select name="test">
       <option value="1">First element </option>
       <option value="2">Second element </option>
       <option value="3">Third element </option>
</select>

Beklendiği gibi, seçimimi oluşturmak için her öğenin idve titlealanlarına erişebilirim myCollection. Ve externalValueseçimin dışında, değişkenim doğru yazdırılıyor ("myExternalValue").

Ne yazık ki, seçeneklerin metinlerinde externalValuedeğer hiçbir zaman yazdırılmaz.

Benim sorum: her döngü içinden gidon.js kapsamı dışında bir değişkene nasıl erişebilirim?

Yanıtlar:


454

Deneyin

<option value="{{id}}">{{title}} {{../externalValue}}</option>

../Yol parçasını istediğini olmalıdır ebeveyn şablon kapsamını başvurur.


10
Gelecekteki okuyucular hala benim gibi sorun yaşıyorlarsa, bu sorunun cevabına buradan bir göz atın . Bu cevabı gördükten sonra görmek biraz zaman aldı. ../Kaç değerden uzak olduğunuza bağlı olarak tekrar tekrar kullanmanız gerekebilir .
bcmcfc

10
Ben deli miyim ya da bu tür değerli bilgi gidon docs bulunabilir hiçbir yerde ???
Jesse

1
@ spliter bu ember gidon üzerinde çalışacaktır .. çalışmıyor gibi görünüyor
kweku360

1
Fikrim yok @ kweku360. Bu normal hadlebarlar için geçerlidir. Ember, bu işlevin başka bir yolla uygulandığı gidonların özelleştirilmiş sürümünü kullanıyor olabilir
spliter

1
Teşekkürler dostum, bu Foundation 6 Panini ile de mükemmel çalışıyor.
Marco

13

Veya şu şekilde mutlak yolu kullanabilirsiniz:

<option value="{{id}}">{{title}} {{@root.user.path.to.externalValue}}</option>

1

Bu konuyla ilgili dokümantasyon için 404 ile birçok bağlantı gördüm.

Ben bunu ile güncelleyin, 1 Nisan 2020'de çalışıyor :

https://handlebarsjs.com/guide/expressions.html#path-expressions

#With ve #each gibi bazı yardımcılar iç içe geçmiş nesnelere dalmanıza izin verir. Yolunuza ../ segmentleri eklediğinizde, Gidonlar ana bağlama geri döner.

    {{#each people}}
    {{../prefix}} {{firstname}} 
    {{/each}}

Ad, bir yorum bağlamında yazdırılmış olsa da, öneki almak için ana içeriğe (kök nesne) geri dönebilir.

UYARI

../'Nin çözümleyeceği kesin değer, bloğu çağıran yardımcıya göre değişir. ../ kullanımı yalnızca bağlam değiştiğinde gereklidir. {{#Each}} gibi yardımcı çocukların çocukları, {{#if}} gibi yardımcıların çocukları gerektirmez.

{{permalink}}
{{#each comments}}
  {{../permalink}}

  {{#if title}}
    {{../permalink}}
  {{/if}}
{{/each}}

Bu örnekte, yukarıdakilerin tümü, farklı bloklar içinde bulunmasına rağmen aynı önek değerine başvurmaktadır. Bu davranış, Gidon 4'ten itibaren yenidir, sürüm notları , geçiş planının yanı sıra önceki davranışı da tartışır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.