2016-02-29 162 views
1

使用Silverstripe模板,我可以將變量從一個包含傳遞給另一個嗎?將變量從一個模板傳遞到另一個模板

within Order_ConfirmationEmail.ss <% include Order SendingEmail=true %>。將$ SendingEmail設置爲true。

而且在Order.ss通$ SendingEmail到另一個模板通過另一包括:

<% include Order_Content SendingEmail=$SendingEmail %>

然後使用變量$ SendingEmail在Order_Content.ss:

<% if $SendingEmail %>We are sending an email <% end_if %>

不幸的是, $ SendingEmail在Order_Content.ss中沒有值(它在Order.ss中)。這種方法可行嗎?有沒有更好的辦法。提前致謝。

+0

我的猜測是'$ SendingEmail'可能沒有在包含模塊的模板中實際設置。您是否檢查過該父模板中的$ SendingEmail的值? – Turnerj

+0

它應該按照https://docs.silverstripe.org/en/3.3/developer_guides/templates/syntax/#includes工作你刷新了嗎?你確定這個模板是否被渲染(而不是模塊中的另一個)? – wmk

回答

0

它應該。不幸的是,我並不確定所有的情況,但據我所知,這是一件事情(能夠通過範圍內的任何變量)。但是,您應該注意一些警告。其中最大的就是範圍。如果你在任何時候改變上下文(並且你有多個圖層,所以這可能有點可能),你需要確保你試圖引用的變量在範圍內。否則它將是空白的,並因此對其進一步參考報告。這是模板中最常見的問題,因此總是支付雙倍(三重)檢查費用。

相關問題