Конечно, есть.Как правило, вы никогда не хотите использовать jQ в AngularJS, и ваниль только для вещей, не предоставляемых AngularJS.Здесь вы делаете привязку к просмотру.Это, безусловно, то, что предлагает AngularJs, являясь фреймворком MVsomething.
Причина?В неспецифических и простых терминах AngularJS имеет свои собственные способы, которые обеспечивают аккуратные вещи, такие как привязка данных и т. Д. Если вы не подчиняетесь его правилам, вы, скорее всего, сломаете аккуратные вещи, которые вы получите.
Вот демонстрациякак это сделать в современном AngularJS:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-sanitize.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<p ng-bind-html="myText"></p>
</div>
<script>
var app = angular.module("myApp", ['ngSanitize']);
app.controller("myCtrl", function($scope) {
$scope.myText = "My name is: <h1>John Doe</h1>";
});
</script>
Это довольно просто.Вы определяете HTML как строку, привязываете ее к области, как и любые другие данные, которые вы хотите получить в представлении, а затем просто используете директиву ng-bind-html
, чтобы вставить HTML в элемент, в котором вы используете директиву.
Аккуратный, простой, безопасный и результат будет работать как любой другой статически написанный шаблон, вы можете объединять данные и без него, цикл дайджеста также будет работать как обычно.