gpt4 book ai didi

javascript - 如何使用 AngularJS 以编程方式创建 URL

转载 作者:IT王子 更新时间:2023-10-29 03:19:10 25 4
gpt4 key购买 nike

目前我正在研究 AngularJS 框架。我正在使用 $route 服务深度链接到我的单页应用程序。

现在我想在我的应用程序内部导航,比方说,通过仅更改当前 URL 的搜索部分。在 JavaScript 中使用 $location 服务很容易做到,但是如何从当前路由构造一个 href 属性,只替换搜索部分?

我必须手动完成还是有 AngularJS 方法?

已添加:

当然,$location 服务拥有计算此类 URL 的所有方法。但我无法使用它,因为 $location 也会将浏览器窗口导航到新的 URL。

手动创建 URL 还有另一个复杂的问题:必须检查是否使用了旧的 #-method 或新的 History API。根据这一点,URL 必须包含或不包含 # 符号。

最佳答案

从 v1.4 开始,您可以使用 $httpParamSerializer为此:

angular.module('util').factory('urlBuilder', function($httpParamSerializer) {
function buildUrl(url, params) {
var serializedParams = $httpParamSerializer(params);

if (serializedParams.length > 0) {
url += ((url.indexOf('?') === -1) ? '?' : '&') + serializedParams;
}

return url;
}

return buildUrl;
});

用法:

要生成 http://url?param1=value1&param2=value2_1&param2=value2_2 调用它:

urlBuilder('http://url', { param1: 'value1', param2: ['value2_1', 'value2_2'] });

关于javascript - 如何使用 AngularJS 以编程方式创建 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12808779/

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