想要為web應用程式上的每一頁建立頁首和頁尾。某頁必須有特定的頁首頁尾,想要動態決定對於給定請求該採用哪種頁首頁尾。
解決方案
多數web應用程式要求定義頁首頁尾檔案,並且自動包含這些檔案到每一頁的頂端和底部。rails轉化了這種模式。被呼叫的單一檔案包含頁首和頁尾,並且每個特殊頁的內容被插入進這些檔案中。
<%= @content_for_layout %>
任何布局檔案裡的關鍵資訊是指示<%= content_for_layout %>。這會被每個單獨頁面的內容所替代。
過載site-wide layout 來自定義布局,它們並沒有加上這個。
討論正如主檢視模板一樣,布局模板已經訪問了所有操作設定的例項變數。任何可以在檢視裡做的事情,都可以在布局模板裡完成。這意味著可以完成這樣的事情,比如在操作中動態設定頁面標題,然後在布局裡使用它們:
class statuscontroller < actioncontroller:base
def index
@title = "system status"
endend
<%= @content_for_layout %>
要想改變乙個控制器的布局檔案,呼叫其布局方法:
end如果在某次操作中使用render方法(參考15.5節),可 以傳遞:layout變數到render 裡,並且給此次操作乙個不同於其他控制器的布局。在本例中,foocontroller的大多數操作使用bar.rhtml作為它們的布局,但是 count操作使用的是count.rhtml:
class foocontroller < actioncontroller:base
layout 'bar'
def count
@data = [1,2,3]
render :layout => 'count'
endend
甚至可以得到沒有布局的操作。本段**賦給foocontroller 的所有操作乙個bar.html 的布局,除去count操作,它根本沒有任何布局:它負責自己所有的html。
class foocontroller < actioncontroller:base
layout 'bar', :except => 'count'
end如果需要動態計算布局檔案,傳遞乙個方法符號到布局方法中。這告訴布局在每次請求時都呼叫該方法。該方法的返回值定義了布局檔案。方法可以呼叫action_name來決定當前請求的操作名字。
class foocontroller < actioncontroller:base
layout :figure_out_layout
private
def figure_out_layout
if action_name =~ /pretty/
'pretty'
# use pretty.rhtml for the layout
else
'standard'
# use standard.rhtml
endend
end
最後,布局接受lambda 函式作為乙個引數。這使得可以用更少的**動態決定布局:
class foocontroller < actioncontroller:base
layout lambda
end<%= render :partial => 'layouts/header' %>
... your view's content goes here ...
<%= render :partial => 'layouts/footer' %>
設定tableView的頁首和頁尾
1 自定義頁首和頁尾時,要先註冊 註冊頁首 tableview registerclass uitableviewheaderfooterview class forheaderfooterviewreuseidentifier header 註冊頁尾 tableview registerclass...
word文件中頁首頁尾的設定問題
問題一 解決只在首頁顯示頁首與頁尾 這個問題解釋起來其實挺麻煩的,但懂了的話操作起來不難 對第乙個問題 第二步,先編輯第一頁的頁首頁尾,編輯好後,進入第二頁,也就是第二節。在開啟的頁首頁尾編輯欄中,先取消 同前 有的版本顯示 和上一節相同 的選中狀態,然後刪除頁首頁尾的內容,特別是頁首,刪掉字以後還...
如何 向文件新增頁首和頁尾
可以使用 section 的headers 屬性和footers 屬性向文件中的頁首和頁尾新增文字。文件的每一部分都包含三個頁首和頁尾 對於文件級自定義項和應用程式級外接程式,這些過程有所不同。適用於 本主題中的資訊適用於 word 2007 和 word 2010 的文件級專案和應用程式級專案。有...