2016-09-17 45 views
2

我在其中一個項目中遇到了問題,但找不到解決方案。我有一個產品產品數組,其中包含標題,描述,價格以及此數量在我店裏有產品的類型。將圖像傳遞給變量中的模板

type product struct { 
Title  string 
Description string 
Price  int 
Pieces  int 
} 

每個產品的圖像的url都來自j​​son作爲字符串,按產品分組。我有一個主頁面,其中包含了一些用於傳遞可變產品內容的塊(頁眉,頁腳,側欄,適用於所有產品的產品卡模板)。

<div class="container col-lg-12 main"> 
{{render "blocks/storefront-header.html"}} 
<div class="col-lg-12 padd_class" style="padding-left:10px;padding-right:10px;padding-bottom:10px"> 
     <div class="col-lg-12" style="padding-right:70px;padding-left:70px"> 
     <div class="row"> 
      {{range .myproducts}} 
       {{template "blocks/product-card.html" .}} 
      {{end}} 
     </div> 
    </div> 
</div> 

產品卡包含標題,價格,產品的描述和一些div中的圖像應放。

<div class="col-lg-12" style="padding-bottom:5px"> 
    <!-- images --> 
</div> 
<div class="card-block" style="width:100%"> 
    <div class="pull-right" style="margin-right:-15px"> 
    <h3 class="pull-right price">{{.Price}}</h3> 
    </div> 
    <h4 class="card-title">{{.Title}}</h4> 
    <p class="card-text">{{.Description}}</p> 
    <button class="btn btn-primary col-lg-12 classBuy classbtn ">View product</button></a> 
</div> 

我需要做的是通過與相應的圖像產品的詳細信息(因爲每個產品應至少有一個形象,但賣方可以上傳圖片沒有具體數目)的模板這樣我的頁面就可以顯示每個產品的細節和圖像,但是可以一起顯示在同一張卡片上。基本上,卡應該包含產品細節和這個特定項目的圖像。 這是我使用Go代碼:

iris.UseTemplate(html.New(html.Config{Layout: "pages/_layout.html"})).Directory("./views", ".html") 
iris.Static("/img", "./img", 1) 
iris.Static("/css", "./css", 1) 
iris.Static("/js", "./js", 1) 

type ProductList []product 
var myproducts = ProductList{ 
{"bracelet", "descr", 10, 7}, 
{"hat", "descr", 3, 5}, 
{"scarf", "descr", 3, 0}, 
} 

iris.Get("/dashboard", func(ctx *iris.Context) { 
ctx.Render("pages/dashboard.html", iris.Map{"myproducts": myproducts}, iris.RenderOptions{"gzip": true}) 
    }) 
iris.Listen(":8080") 

我試圖做的是通過兩個變量,產品的一個和圖像的相同的模板之一,一個是卡,但它沒有工作。 有沒有人有關於我可以實現這一目標的想法? 謝謝你的時間!

回答

1

一個簡單的解決方案是將product的聲明更改爲包含圖像URL,例如,

type product struct { 
    Title  string 
    Description string 
    Price  int 
    Pieces  int 
    ImagesURL []string 
} 
myproducts := []product { 
    //initialisation 
} 

,或者創建新類型的結構組成

type productWithImage struct { 
    product 
    ImagesURL []string 
} 
myproducts := []productWithImage { 
    {product: product {"bracelet", "descr", 10, 7}, ImagesURL: []string{...}}, 
    //initialisation 
} 

現在,你可以通過一個單一變量模板,並利用{{range .ImagesURL}}訪問圖像URL在你product-card.html

相關問題