javascript - 如何停止 ui-sref 编码 url 参数

标签 javascript angularjs angularjs-directive angular-ui-router

这是我与 ui-sref 属性指令一起使用的链接:

<a ui-ref="show.hastitle({uuid:item.uuid, title:item.title})">

标题参数可以是波斯语单词,我期望的是如下链接:

http://domain.com/page/54c82de2978af/ه-فف٢٠

但是ui-sref返回如下:

http://domain.com/page/54c82de2978af/%D9%88%D8%A7%DA%98%D9%87-%D9%81%D8%A7%D8%B1%D8% B3%DB%8C

我使用过如下解决方案:

var noneEncodedUri = {
      encode: function(str) { return str && str.replace(/ /g, "-"); },
      decode: function(str) { return str && str.replace(/-/g, " "); },
      is: angular.isString,
      pattern: /[^/]+/
};

$urlMatcherFactoryProvider.type('noneEncodedUri', noneEncodedUri);

$stateProvider.state('mystate', {
      url: "/{title:noneEncodedUri}"
 })

但是渲染的链接没有改变 如何完全停止 ui-sref 编码 url 参数?

最佳答案

我使用此作用域函数来解决我的问题:

$scope.beautyUri = function (uuid, title) {
    return decodeURIComponent($state.href("show.hastitle", {uuid: uuid, title: title}));
  };

并在 html 中使用此函数,如下所示:

<a href="{{beautyUri(item.uuid, item.title)}}">{{title}}</a>

关于javascript - 如何停止 ui-sref 编码 url 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32867026/

相关文章:

javascript - 通过 ng-change 传递函数参数不起作用

angularjs - 如何在指令中使用/同步 Controller 的数据?

angularjs - 如何在 Angular JS 中动态创建 $scope 变量和函数

javascript - 防止 iframe 重新加载父级

javascript - 对 RequireJS 主模块的依赖

javascript - 如何通过深层路径在对象数组中查找对象?

css - AngularJS:条件语句在 Controller 的 Angular JS 方法中不起作用

javascript - 如果 true 则点击 ng,如果 false 则解析为 true

javascript - 尝试使用 React 和 Express 在另一个选项卡中打开 .pdf 时显示空白内容

javascript - AngularJS:将加载器元素添加到 DOM 顶部