AngularJS路由不显示单词之间空格的连字符

时间:2018-05-10 16:43:13

标签: angularjs angular-ui-router

我按预期配置了我的路线(当然,在我的app.js文件中)。我用ui-router而不是我们原生的“ngRoute”制作它。所有这些看起来如下:

    .state('segment', {
        url: "/:segmentId",
        data: { segmentId: "1" },
        ncyBreadcrumb: { skip: true },
        templateUrl: "resources/views/segment.html",
        controller: 'SegmentCtrl'
    })

如您所见,它有自己的控制器和视图(templateUrl)。还有一个指定的网址。此“segmentId”是一个使用JSON文件中的数据的变量。在该文件中,它使用确定键的名称来使用其值。该值将是我的URL名称。

{
  "id": "2",
  "name": "This is my url",
},

但是这里有一个问题:

当我在单词之间有空格时,它应该如下所示:www.example.com/this-is-my-url /

但它看起来像这样:

www.example.com/thisaisamyaurl /

不要对这里发生的事情有最模糊的想法。

1 个答案:

答案 0 :(得分:0)

我的slugify功能有问题。它没有很好地宣布。

            // remove accents, swap ñ for n, etc
            var from = "ãà áäâẽèéëêìíïîõòóöôùúüûñç·/_,:;";
            var to   = "aaaaaeeeeeiiiiooooouuuunc------";
            for (var i=0, l=from.length ; i<l ; i++) {
                str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
            }

现在是:

            // remove accents, swap ñ for n, etc
            var from = "ãàáäâẽèéëêìíïîõòóöôùúüûñç·/_,:;";
            var to   = "aaaaaeeeeeiiiiooooouuuunc------";
            for (var i=0, l=from.length ; i<l ; i++) {
                str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
            }

它有效。