尝试将参数传递给url时索引超出范围

时间:2014-04-25 13:21:40

标签: templates go revel

我目前使用revel作为底层webframework。 我的模板/逻辑非常基础。我从数据库中获取[] * someObject,并希望将其显示在表格中。

{{ if .objs}}
    {{ range .objs }}
    <tr>
      <td><span>{{ .Title }}</span></td>
      <td>x</td>
      <td>y</td>
      {{ $id := .Id}}
      <td><a href="{{url "ObjectController.ViewObj" .Id}}">View {{ $id }}</a></td>
    </tr>
    {{ end }}
{{ end }}

然而,这会产生“模板运行时错误,索引超出范围”,没有进一步的信息。 问题是网址部分。

{{url "ObjectController.ViewObj"}}

作品。没有额外的.Id它完全没问题,但由于我想将id传递给url,这不是一个选项。

路线是:

/lobby/view/:objid                  ObjectController.View

修改(FIXED): 显然我忘了添加id作为参数:

func (c ObjectController) View(id int64) revel.Result

我不知道它会抛出这样的错误,我希望会有更具体的错误。

1 个答案:

答案 0 :(得分:0)

您可能在路线文件中遗漏了路线的参数。

当您尝试使用参数(Id)获取URL时,到ObjectController.ViewObj的路径应如下所示:

GET /your/route/:id ObjectController.ViewObj

如果您忘记了:id,那么您将获得超出范围的&#34;索引&#34;尝试撤消网址时出错。