javascript - 将存储的 var 传递给 g :remoteLink 的 id 和更新属性

标签 javascript grails

我在 <g:each> 中有这个 anchor 元素我用来在脚本中存储变量的标签

<g:each in="${tableInstanceList.sort{a,b-> a.tableNumber.compareTo(b.tableNumber)}}" var="ti">
    <a href="#show_${ti.id}" data-toggle="modal" id="${ti.id}" class="table" >Table ${ti.tableNumber?.encodeAsHTML()}</a>
</g:each>

这是脚本
$(".table").ready(function() {
    var tableId= $(this).attr("id");      
});                 

现在我的问题是如何使用变量 tableId .它为idupdate此代码的属性:
<g:remoteLink id="" controller="superAdmin" action="assignServer" update="tableShown_">
    <button type="button" class="btn btn-primary btn-sm pull-right" style="margin:15px 10px 0px 0px;">
        <span class="glyphicon glyphicon-user"></span> Assign Server
    </button>
</g:remoteLink>

最佳答案

你不能因为 <g:remoteLink... />在服务器端生成并在客户端的浏览器中执行 javascript。

您必须在 tableInstanceList 的同一个(或另一个)循环中进行迭代。并创建链接,或者您可以通过发送到客户端链接“ stub ”来使用 javascript 建立链接:

    <a href="${ createLink(controller: 'superAdmin', action: 'assignServer', id: 'PLACEHOLDER') }"
        onclick="${ remoteFunction(controller: 'superAdmin', action: 'assignServer', id: 'PLACEHOLDER', update: 'tableShown_PLACEHOLDER') }" >
        <!-- ... -->
    </a>

现在通过简单的 javascript replace 将每个占位符更改为您的 id关于属性。
您可以将其移动到您的 TagLib。

通常您应该能够在服务器端生成具有正确 ID 的所有链接,但我不知道您的 gsp 代码结构和流程。

关于javascript - 将存储的 var 传递给 g :remoteLink 的 id 和更新属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21810504/

相关文章:

javascript - Ajax与数据不起作用,但它是成功的

javascript - 为什么while循环会阻塞事件循环?

javascript - jQuery每个函数,跳过特定元素

grails - Grails findAll在集合中找不到值

grails - IntelliJ IDEA Grails : Refresh the browser from the keyboard

Grails - 查询域实例的属性

email - createLink 无法在(邮件)模板中工作?

javascript - 自动关闭不适用于日期选择器

javascript - RxJSskipUntil 运算符的行为不符合预期

grails - 我怎样才能阻止 Grails less-resources 插件在每次运行应用程序时编译我的 less 文件?