AngularJS连字符串

时间:2016-12-22 16:26:29

标签: angularjs

我怎样才能在AngularJS中连字符串。我希望能够做到这样的事情:

<a href="/houses/{{object.name | lowercase | hyphenate}}/">

This Is The String变为this-is-the-string

是否有一个过滤器用于连接类似于lowercase的字符串?如果没有关于如何实现这一目标的任何想法?

4 个答案:

答案 0 :(得分:4)

{{'This Is The String'.toLowerCase().split(' ').join('-')}}

在你的情况下: <a href="/houses/{{object.name.toLowerCase().split(' ').join('-')}}/">

答案 1 :(得分:0)

您可以在Angular中制作自己的过滤器:

app.filter('hyphenate', function() {

  return function(input) {
    output = input.split(' ').join('-');
    return output;
  }

});

答案 2 :(得分:0)

您可以使用以下小提示,了解如何编写您要求的过滤器: https://jsfiddle.net/1x2p5v6g/4/

过滤:

app.filter('myFilter', function() {
    return function(x) {
        if(x == undefined)
        return "";
        return x.replace(/\s/g , '-');
    };
});

用法:

{{ variable| myFilter}}

答案 3 :(得分:0)

最好创建一个函数或指令

function slugify() {
    return function (input) {
        if (!input)
            return;

        // make lower case and trim
        var slug = input.toLowerCase().trim();

        // replace invalid chars with spaces
        slug = slug.replace(/[^a-z0-9\s-]/g, ' ');

        // replace multiple spaces or hyphens with a single hyphen
        slug = slug.replace(/[\s-]+/g, '-');

        return slug;
    };
}

现在在html中

<a href="/houses/{{slugify(object.name)}}/">....</a>

这将删除URL中不允许的所有无效字符。