0
我用局部區域替換了文件中的一些重複代碼,但現在相對部分的調用不再工作。handlebars.js:局部區域中的相對路徑不工作
我有這樣的數據結構:
var data = { staff: [
{"name": "Alan"},
{"name": "Bettina"}
],"company": "Rad, Inc."};
原始模板看起來是這樣的:
<script id="first_template" type="text/x-handlebars-template">
{{#each staff}}
<li>Name: {{name}} , Company: {{../company}}</li>
{{/each}}
</script>
我改變了它這樣使用部分:
<script id="list-partial" type="text/x-handlebars-template">
<li>Name: {{name}} , Company: {{../company}}</li>
</script>
<script id="second_template" type="text/x-handlebars-template">
{{#each staff}}
{{> list}}
{{/each}}
</script>
在部分公司名稱的示例不會呈現。我把一個工作的例子在jsfiddle:http://jsfiddle.net/staeff/qwms6h2b/
有沒有人看到,爲什麼它不工作,我想要做什麼?
因爲partials有它自己的上下文,所以你傳入了。構造'{{> list}}'等價於'{{> list this}}'。 – raidendev 2014-09-12 13:15:57
嗨raidendev,謝謝你的回答。我已經閱讀了上下文,但我仍然感到困惑。對於我想要做的事情,這不是「正確的」背景嗎? – staeff 2014-09-12 14:08:25
問題出在'{{../ company}}'結構中,因爲在部分中沒有上部'../'級別。解決這個問題的方法之一是將'#each'移到partial中,並將其命名爲「staffList」。但正確的方法是重構你的數據結構。 – raidendev 2014-09-12 14:14:12