2017-08-30 54 views
1

我需要用連字符( - )替換所有帶有連字符( - )的特殊字符,如(Inka -Tiitto-s-Camp-Aero-Gravity-Milan-9)。但我得到這個錯誤。如何在AngularJs中用空格替換一些字符

=>您提交的URI不允許使用字符。 也得到這樣的名字(Inka Tiitto的Camp @ Aero Gravity Milan -9)

我試過這行代碼但沒有得到理想的結果。

<a href="<?= BASEURL ?>camp/{{x.name.split('/[\.,-\/#!$%\^&\*;:{}=\-_`~()@\+\?><\[\]\+]/g').join('-')}}-{{x.id}}">{{x.name}}</a> 

任何人都可以幫助我得到這個。 任何幫助將不勝感激。

在此先感謝

+0

我會建議不做那種在模板的東西;最好的地方在於控制器。 – rrd

+1

這樣做的最好方法是編寫一個過濾器。示例代碼是在我的另一篇文章https://stackoverflow.com/questions/45936111/replace-all-for-a-new-line-in-angular-loop/45936221#45936221 –

+0

你能建議我怎麼做到這一點控制器? @rrd – user6891871

回答

0

您可以通過編寫自定義filter做到這一點。

angular.module('filters') 

.filter('replaceChars', function() { 
    return function(value) { 
    if(!value) { 
     return ''; 
    } 

    return value 
     .toString() 
     .replace(/[\.,-\/#!$%\^&\*;:{}=\-_`~()@\+\?><\[\]\+]/g, '-'); 
    }; 
}); 

,然後在模板中使用它:

<a href="<?= BASEURL ?>camp/{{x.name | replaceChars}}-{{x.id}}">{{x.name}}</a> 
相關問題