2017-08-30 5 views
1

(Inka -Tiitto-s-Camp-Aero-Gravity-Milan-9)のように、すべての特殊文字をハイフン( - )で置き換える必要があります。しかし、私はこのエラーが発生しています。AngularJsのスペースで一部の文字を置き換える方法

=>送信したURIには許可されていない文字が含まれています。 また、このような名前を得ています(Inka Tiitto's 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> 
関連する問題