douzhiba6873 2019-01-12 22:53
浏览 39
已采纳

Golang函数“无法评估字符串类型的字段”

I have a struct of type Item that contains ItemFields which is a slice of type string. I would like to conditionally print each string in ItemFields that is a hyperlink with an anchor tag. To do so, I am using a function, IsHyperlink, to check whether each string in the slice should be wrapped in an anchor tag or simply printed out.

type Item struct {
  ItemFields []string
}

I am looping through ItemFields in my page.html like this.

{{range .Items}}
  <ul>
    <li>
      {{range .ItemFields}}
        {{if .IsHyperlink .}}
          <a href="{{.}}">{{.}}</a>
        {{else}}
          {{.}}
        {{end}}
      {{end}}
    </li>
  </ul>
{{end}}

However, when I run the application IsHyperlink is reporting that it 'cant evaluate field IsHyperlink in type string.

How can I change my go code to successfully wrap the hyperlinks in anchor tags?

  • 写回答

1条回答 默认 最新

  • dongliyan7318 2019-01-12 22:57
    关注

    The value . in that context is a string, not the Item. Use a variable to refer to the item:

    {{range $item := .Items}}
      <tr>
        <td>
          {{range .ItemFields}}
            {{if $item.IsHyperlink .}}
              <a href="{{.}}">{{.}}</a>
            {{else}}
              {{.}}
            {{end}}
          {{end}}
        </td>
      </tr>
    {{end}}
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号