我想知道,这是在外部javascript文件中编写网址的最佳方式
例如:
我有一个执行ajax调用的javascript,如:
$(function(){ $('#myButton').click(function(){ $('#content').html($.get('/my-controller/myaction')); }); });
在这种情况下,我必须在我的javascript文件中对控制器的url进行硬编码
我使用grails,它有一个很好的方式来创建网址,我想使用它(如果控制器更改网址,我不必搜索所有的javascript文件来更改它们)
有什么办法可以做到最好?
创建一个控制器来提供一个javascript文件的视图,所有需要的url都可以是一个很好的解决方案吗?
还有更好的方法吗?
答案 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时可能很有用(至少对于链接而言)。