2012-02-09 68 views
2

我想輸出一個在全部模板中都是全局的值,甚至是在Grails中的佈局,就像Django的上下文處理器一樣,您可以在上下文處理器中渲染上下文並將其用作模板中的全局變量。在Grails中是否有Django的上下文處理器?

在Grails中有這樣的概念嗎?而且,我如何在佈局中使用它?

+1

我也想知道這一點。 Grails中最接近Django的上下文處理器的是什麼? – 2012-08-29 10:51:41

+0

如果它存在,這將是一個令人難以置信的有用功能。我不知道任何普遍注入GSP的東西甚至可以與之比較。 – 2012-09-11 12:35:56

+0

或者,也許這就是你正在尋找http://stackoverflow.com/questions/1728021/adding-a-variable-to-all-views-in-grails?rq=1 – mingus5000 2012-10-15 14:08:21

回答

-3

我根本不熟悉Django。在google中查了一下Django的上下文處理器,我想我明白了。基本上它配置注入每個模板的可重用數據?無論如何,就我所知,Grails中並不存在這樣的事情。您可以嘗試以下方法作爲解決方法。

使用的ApplicationContext

每個視圖訪問ApplicationContext的。因此,創建一個包含所有需要的數據的服務,假設它叫做fooService,並且您想要的數據項是名爲bar的服務中的一個字段(當然也可能是一種方法)。然後在你的視圖中做$ {applicationContext.fooService.bar}。在視圖中訪問applicationContext的資源:http://mrhaki.blogspot.com/2011/11/grails-goodness-get-grailsapplication.html

使用您的佈局

我不知道這一個,所以在你自己的風險。最上面的一個當然非常詳細。以不同的觀點一遍又一遍地打電話會很煩人。相反,調用它一次,並使用g:set將其設置爲佈局中的變量。我認爲這個變量在每個使用該佈局的視圖中都是可用的......但是不確定。這裏是g的文檔:set - >http://grails.org/doc/latest/ref/Tags/set.html

如果我沒有得到什麼上下文處理器在Python中做什麼,我很樂意再試一次...

+0

或者你可以使用控制器攔截器:http ://grails.org/doc/2.1.0/ref/Controllers/afterInterceptor.html。只需讓每個控制器擴展一個基本的控制器,添加所有必要的變量 – mingus5000 2012-10-15 14:01:46

相關問題