2
爲什麼定義在fill-slot
或define-macro
元素之外的元素在此元素內不可見?爲什麼定義在fill-slot或define-macro元素之外的變量在該元素內不可見?
<body tal:define="a string:a">
<metal:content-core fill-slot="content-core">
<metal:content-core define-macro="content-core"
tal:define="b string:b">
<div tal:content="a" />
<div tal:content="b" />
<div tal:content="c" />
</metal:content-core>
</metal:content-core>
</body>
無法評估含有變量a
的故事表達式。當然b
是可見的。另一方面,如果變量c
在define-slot
的封閉元素中定義,那麼它是可見的。
<div tal:define="c string:c">
<metal:text define-slot="content-core"></metal:text>
</div>
看起來只有在插入插槽後才計算變量。
Thansk爲澄清答案 – wolfrevo
+1,非常好的解釋 –