angular.module("Angular", [])
.controller("AngularCtrl", function ($scope) {
$scope.setPhone = function(phone, user_phone) {
return phone ? "<input type='text' id='phone' value='" + user_phone + "'>" : user_phone;
};
})
.filter('html', function($sce) {
return function(val) {
return $sce.trustAsHtml(val);
};
});
Выше, собственно, код; ниже - html:
<div class="col-sm-3">
{{setPhone(phone, '<?= $user['phone'] ?>') | html}}
</div>
<div class="col-sm-1">
<div class="checkbox">
<input type="checkbox" ng-model="phone">
</div>
</div>
Не могу понять, почему не отрабатывает фильтр (как метод тоже не работает, если сделать альтернативный, с той же функцией).
Если вы хотите, что бы у вас строка выводилась как html, вам нужно использовать директиву ng-bind-html. Через фигурные скобки строка не будет рендериться.
angular.module("MyApp", [])
.controller("AngularCtrl", function($scope, $sce) {
$scope.setPhone = function(phone, user_phone) {
return $sce.trustAsHtml(phone ? "<input type='text' id='phone' value='" + user_phone + "'>" : user_phone);
};
$scope.phone = true;
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="MyApp">
<div ng-controller="AngularCtrl">
<div class="col-sm-3" ng-bind-html="setPhone(phone,'+7-(999)-999-99-99')">
</div>
<div class="col-sm-1">
<div class="checkbox">
<input type="checkbox" ng-model="phone">
</div>
</div>
</div>
</div>
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники