ember.js
  • handlebars.js
  • 2013-07-16 50 views 1 likes 
    1

    我有Handlebars模板的範圍問題。我有一個模塊列表,其中每個模塊都包含一個服務列表。所以我有這樣的一個模板(有一些標記刪除):Ember.js把手範圍問題

    {{#each controller}} 
        <a onclick='$(".{{unbound uuid}}").toggle(0);'> 
    
        {{#each service in services}} 
         <div class='{{unbound uuid}}'></div> 
        {{/each}} 
    {{/each}} 
    

    的問題是,第二{{unbound uuid}}不會被取代。如果我嘗試訪問外部範圍的任何其他項目,則會發生同樣的情況。但是,Ember.js網站說使用each ... in幫手應該保留外部範圍。我究竟做錯了什麼?

    (FYI:使用最新版本Ember.js,灰燼數據和把手的)。

    +0

    此博客文章(http://www.emberist.com/2012/04/06/bind-and-bindattr.html)解釋了爲什麼您需要使用「{{bindAttr}}」而不是正常的句柄'{{...}}'。 – CraigTeegarden

    +0

    這不是我的問題。使用'unbound'關鍵字可以很好地處理這個問題(因爲我並不需要綁定)。我的問題是與範圍。正如您在我對Gevious的回答的評論中看到的那樣,它仍然沒有對uuid進行正確的替換。 – GJK

    +0

    嘗試在內部作用域中記錄你的'uuid',比如'{{#each service in services}} {{log uuid}} {{/ each}}'你在控制檯中看到記錄的'uuid'嗎? – intuitivepixel

    回答

    1

    也許這是正確的語法?

    {{#each item in controller}} 
        <a onclick='$(".{{unbound item.uuid}}").toggle(0);'> 
    
        {{#each service in services}} 
        <div class='{{unbound item.uuid}}'></div> 
        {{/each}} 
    {{/each}} 
    
    +0

    這也適用,這使我相信,使用'controller'變量時範圍是不同的。這應該在Ember.js文檔中更清楚一點。無論哪種方式,謝謝。很高興有這個解決。 – GJK

    相關問題