
テキストを置換するフィルター
filterでフィルターを作成して{{foo | replace1:'ol':'in'}}のようにして置換。
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');
};
}
]);
<p>{{foo | replace1:'ol':'in'}}</p>
HTMLを置換するフィルター
HTML(タグ付き)で置換する場合$sceが必要。ng-bind-htmlを使用する点にも注意。(ngSanitizeを使用しない前提でのやり方)
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);
};
}
]);
<p ng-bind-html="foo | replace2:'ol':'<b>an</b>'"></p>
AngularJSのfilterでテキストやHTMLを置換するフィルターのサンプル
