在javascript文件中生成url

时间:2012-08-17 13:51:50

标签: javascript ajax url grails

我想知道,这是在外部javascript文件中编写网址的最佳方式 例如:
我有一个执行ajax调用的javascript,如:

$(function(){
    $('#myButton').click(function(){
        $('#content').html($.get('/my-controller/myaction'));
    });
});

在这种情况下,我必须在我的javascript文件中对控制器的url进行硬编码 我使用grails,它有一个很好的方式来创建网址,我想使用它(如果控制器更改网址,我不必搜索所有的javascript文件来更改它们)
有什么办法可以做到最好? 创建一个控制器来提供一个javascript文件的视图,所有需要的url都可以是一个很好的解决方案吗? 还有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

如果要在html中编码网址呢?

如果点击触发器是链接,只需使用href属性:

<a href="/my-controller/myaction" id="myButton">Click</a>

$(function(){
    $('#myButton').click(function(){
        var url = $(this).attr('url');
        $('#content').html($.get(url));
    });
});

如果单击触发器是按钮或其他内容,请使用data-X属性:

<button id="myButton" data-url="/my-controller/myaction">Click</button>

$(function(){
    $('#myButton').click(function(){
        var url = $(this).data('url');
        $('#content').html($.get(url));
    });
});

它很好地分离了JS和数据,并且在禁用JS时可能很有用(至少对于链接而言)。