iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
1

view

上一篇文章介紹大家如何在 iris 框架下使用 MVC 製作一個網頁應用程式,但是對於view還沒有任何說明,所以本篇將為view做進一步的說明。

本文同步放置於此

iris MVC 的 view

在前一篇文章介紹了如何撰寫、實作以及綁定controller並且介紹action與url之間的關係,如果是撰寫api的網頁應用程式應該是堪用,但是如果要開發server side rendering的網頁應用程式就稍嫌不足,所以接下來介紹如何使用iris MVC的view。

view 的綁定

由於在controller處理response時在controller組html語法一來不直覺,二來權責沒有分離開來會導致開發上遇到問題,因此這裡介紹如何綁定template以及template的撰寫。
在 iris MVC的template支援以下幾種

  • HTML html/template
  • Blocks kataras/blocks
  • Django flosch/pongo2
  • Pug Joker/jade
  • Handlebars aymerick/raymond
  • Amber eknkc/amber
  • Jet CloudyKit/jet
  • Ace yosssi/ace

這裡以html/template為例子來說明,請大家看一下下列例子

app.RegisterView(iris.HTML("./views", ".html"))

在上述例子中介紹如何載入先寫好的template,接下來要介紹如何綁定對映的view

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


上一篇
iris的mvc
下一篇
iris的session
系列文
Iris這個在go語言上地表最快的網頁框架30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言