gpt4 book ai didi

javascript - 使用 Play! 将 json 对象属性注入(inject) anchor 的 href 属性中框架

转载 作者:行者123 更新时间:2023-11-30 18:42:39 26 4
gpt4 key购买 nike

我有一个 jQuery ajax 调用,如下所示:

    $.ajax({
type : 'GET',
dataType : 'json',
url : '/Zoo/animals',
success : function(data){
var count = data.length;
for(var i = 0; i < count; i++) {
${'#tableBody').append('<tr><td>');
${'#tableBody').append('<a href="@{Animal.index(data[i].name)}">' + data[i].name + '</a>');
${'#tableBody').append('</td></tr>');
}
}
})

现在除了 href 属性外,所有这些都可以正常工作。玩!给我以下错误:

Exception raised was NullPointerException : Cannot get property 'name' on null object.

从 ajax 调用返回的 json 字符串很好,因为链接的文本按预期显示为动物的名称。我想将动物的名称传递给 Animal.index 操作,但是无法这样做。

更新:

正如其他人提到的,我也试过这个:

${'#tableBody').append('<a href="@{Animal.index(' + data[i].name + ')}">' + data[i].name + '</a>');

这只会导致以下链接:

localhost:9000/animal/index?name=+%2B+data[i].name+%2B+

最佳答案

问题是玩!在提供文件时生成 url,远在执行任何 javascript 之前。此处或此处的字符串或引号没有任何变化会对您有所帮助。

解决方法:

var url = "@{Animal.index(XXX)}".replace('XXX', data[i].name);
${'#tableBody').append('<a href="'+url+'">' + data[i].name + '</a>');

这允许玩!在“编译”时生成其 url,然后 javascript 在“运行”时简单地执行替换。不确定是否 Play !将查找名为 XXX 的变量,如果是,则在服务器端添加一个名为 XXX 且值为“XXX”的哑变量。

更新

我没有游戏!在我面前摆弄的实例,但不是变量,您也可以通过引用 XXX 直接将字符串作为值插入:

var url = '@{Animal.index("XXX")}'.replace('XXX', data[i].name);

然后您就不需要名为 XXX 的变量了。尽管想法是一样的,但细节需要一些尝试。

关于javascript - 使用 Play! 将 json 对象属性注入(inject) anchor 的 href 属性中框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6407635/

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