1

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

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

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

4

1 回答 1

3

在你的 html 中编码 url 怎么样?

如果点击触发器是一个链接,只需使用 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 时可能很有用(至少对于链接而言)。

于 2012-08-17T14:00:05.237 回答