将自定义URL映射分配给JavaScript变量
Assigning a custom URL mapping to a JavaScript variable
我为我的一个页面创建了一个URL自定义控制器:
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>
消息:无法创建映射
[/dir1/subdir/(*)/(*)]
和参数[{controller=summary, action=show}]
的URL。参数[param1]
是必需的,但未指定!
尽管以下代码在<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变量
- 如何通过ajax刷新JSF填充的javascript变量
- Javascript变量赋值|
- 限制javascript变量的最小/最大整数
- 来自文本输入null的html javascript变量
- 访问jsrender模板中的全局javascript变量并更新它
- 从数据库中获取数据并插入JavaScript变量
- 如何将javascript变量传递到Meteor Spacebars模板中
- 将JavaScript变量保存到Rails模型
- 在if语句下的html中使用javascript变量
- Javascript变量分配-按类别
- 操作javascript变量[HTML]以只显示文本
- 无法比较javascript变量
- 如何将smarty变量与javascript变量进行比较
- 如何使用PHP将javascript变量添加到mysql数据库中
- Javascript 变量使用 jquery 查找变量
- 重新加载页面时Javascript变量发生变化
- 在asp classic中使用javascript变量
- 全局Javascript变量变为null
- 如何向服务器端提交javascript变量