テキストを置換するフィルター
filterでフィルターを作成して{{foo | replace1:'ol':'in'}}のようにして置換。
1 2 3 4 5 6 7 8 9 10 11 12 | var app = angular.module( 'app' , []); app.controller( 'Ctrl' , [ '$scope' , function ($scope) { $scope.foo = 'bold' ; }]); app.filter( 'replace1' , [ function () { return function (str, r1, r2) { return str.replace(r1, r2, 'g' ); }; } ]); |
1 | < p >{{foo | replace1:'ol':'in'}}</ p > |
HTMLを置換するフィルター
HTML(タグ付き)で置換する場合$sceが必要。ng-bind-htmlを使用する点にも注意。(ngSanitizeを使用しない前提でのやり方)
1 2 3 4 5 6 7 8 9 10 11 12 13 | var app = angular.module( 'app' , []); app.controller( 'Ctrl' , [ '$scope' , function ($scope) { $scope.foo = 'bold' ; }]); app.filter( 'replace2' , [ '$sce' , function ($sce) { return function (str, r1, r2) { str = str.replace(r1, r2, 'g' ); return $sce.trustAsHtml(str); }; } ]); |
1 | < p ng-bind-html="foo | replace2:'ol':'<b>an</ b >'"></ p > |
AngularJSのfilterでテキストやHTMLを置換するフィルターのサンプル