上一篇文章介紹大家如何在 iris 框架下使用 MVC 製作一個網頁應用程式,但是對於view
還沒有任何說明,所以本篇將為view
做進一步的說明。
本文同步放置於此
在前一篇文章介紹了如何撰寫、實作以及綁定controller
並且介紹action
與url之間的關係,如果是撰寫api的網頁應用程式應該是堪用,但是如果要開發server side rendering的網頁應用程式就稍嫌不足,所以接下來介紹如何使用iris MVC的view。
由於在controller
處理response時在controller
組html語法一來不直覺,二來權責沒有分離開來會導致開發上遇到問題,因此這裡介紹如何綁定template
以及template
的撰寫。
在 iris MVC的template
支援以下幾種
這裡以html/template
為例子來說明,請大家看一下下列例子
app.RegisterView(iris.HTML("./views", ".html"))
在上述例子中介紹如何載入先寫好的template
,接下來要介紹如何綁定對映的view
。
在介紹完載入template
的方法後接下來要介紹如何撰寫template
以及如何在controller
綁定對應的view
首先看看以下例子
<!DOCTYPE html>
<head>
<title>{{.Title}}</title>
</head>
<body>
{{ yield }}
<footer>
{{ render "partials/footer.html" }}
</footer>
</body>
</html>
這是擷取於
/view/layout/html/views/layouts/main.html
的程式,撰寫要渲染的內容,其中有個關鍵字render
這段是呼叫partial view
其內容如下所列
<h3>Footer Partial</h3>
<h4>{{.FooterText}}</h4>
上述內容放置於
/view/layout/html/views/partials/footer.html
在準備好template
之後就需要在controller
呼叫就可以了,詳情請看下列例子。
func (c *BookController) getIndex(ctx iris.Context) {
data := iris.Map{
"Title": "Page Title",
"FooterText": "Footer contents",
"Message": "Main contents",
}
ctx.ViewLayout("layouts/main")
ctx.View("index", data)
}
在上述例子中呼叫我們最先撰寫的main.html並且將對應的資料結構data傳入,而template
中的{{}}
則會渲染成data內對應的變數。
這拼文章跟大家介紹如何使用MVC的view,並介紹如何綁定以及撰寫template
。