角度アプリで文字列からすべて_
を置き換える必要があります。私のコントローラでは、コードは以下のことは正しい結果得られます。str.replaceがhtml内で動作しない
alert("this_is_string_".replace(/_/g, " "));
をしかし、私はこのように私のhtmlファイル内の同じコードを入れるとき:
<th class="text-center" ng-repeat="(key, value) in filteredEL[0] ">
{{ key.replace(/_/g, ' ') }}
</th>
をそれが次のエラーを与える:
Error: [$parse:syntax] Syntax Error: Token '/' not a primary expression at column 13 of the expression [key.replace(/_/g, ' ')] starting at [/_/g, ' ')]
したがって、html内のすべての必須インスタンスを置き換えるreplace関数を使用するにはどうすればよいですか?
'{{key.replace(/ _/gで、 '「)}}が'角度表現として考えられているここでangular-filterを見てください。 – Mairaj
私は知っています。面白いのは '{{key.replace( '_'、 '')}}'はうまく動作しますが、最初のインスタンスのみが削除されます。私はそれらのすべてを交換する必要があります。 –
これがなぜ機能しないのかについて、より多くの洞察を提供すること。 'key.replace(/ _/g、 '')'は '正規表現'を使ってそのパターンのすべての出来事を取り除こうとします。 Angular docsからの抜粋です。AngularJS式の中から関数を宣言したり、正規表現を作成することはできません。これは、テンプレート内で複雑なモデル変換ロジックを避けるためです。そのようなロジックは、コントローラーや専用フィルターで適切に配置され、適切にテストすることができます。 Ref:https://docs.angularjs.org/guide/expression – M22an