我怎样才能在AngularJS中连字符串。我希望能够做到这样的事情:
<a href="/houses/{{object.name | lowercase | hyphenate}}/">
This Is The String
变为this-is-the-string
。
是否有一个过滤器用于连接类似于lowercase
的字符串?如果没有关于如何实现这一目标的任何想法?
答案 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中不允许的所有无效字符。