gpt4 book ai didi

javascript - 将自定义 URL 映射分配给 JavaScript 变量

转载 作者:行者123 更新时间:2023-11-28 18:40:39 24 4
gpt4 key购买 nike

我已经为我的一个页面创建了一个 URL 自定义 Controller :

class SummaryController {
def show(String param1, String params2) {
...
}

...
}

及其相应的 URL 映射。

class UrlMappings {
static mappings = {
...
name special:"/dir1/subdir/$param1/$param2/summary"{
controller="summary"
action="show"
}
...
}
}

当我在浏览器的地址栏中输入地址时,它运行得很好。现在我想要的是将 URL 保存到 JavaScript 变量中。但是创建 URL 字符串时出现错误:

<script>
var URL =
"${ g.createLink(mapping: "special", params: "[param1: '...', param2: '...']") }"
</script>

Message: Unable to create URL for mapping [/dir1/subdir/(*)/(*)] and parameters [{controller=summary, action=show}]. Parameter [param1] is required, but was not specified!

虽然下面的代码,当写成<body>时,作品:

<body>
....
<li>
<g:link mapping="special" params="[param1: '...', params2: '...']" />
Link
</g:link>
</li>
..
</body>

什么是g:link那不是 g.createLink() ?有没有办法将自定义 URL 值分配给 JavaScript 变量?这是 Grails 2.4.4。

最佳答案

您正在传递String参数,而不是Map。请记住,${} 内部应该是有效的 Groovy 代码,与您在 groovy 类中使​​用的相同。

试试这个:

<script>
var URL =
"${ g.createLink(mapping: 'special', params: [param1: '...', param2: '...']) }";
</script>

类似于:

def g = ...
g.createLink(
mapping: 'special',
params: [
param1: '...',
param2: '...'
]
)
// your code was passing a string instead:
g.createLink(
mapping: 'special',
params: "[param1: '...', param2: '...']"
)

关于javascript - 将自定义 URL 映射分配给 JavaScript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36177831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com