В AngularJS, когда вам нужно отобразить HTML из строк, нельзя просто использовать двойные фигурные скобки для привязки выражения к элементу.Это связано с безопасностью XSS, поэтому AngularJS должен гарантировать, что мы в безопасности.Обычно вместо этого делают:
<span>{{word}}</span>
Мы должны сделать:
<span ng-bind-html="word"></span>
Для получения дополнительной информации, пожалуйста, прочитайте это: https://docs.angularjs.org/api/ng/directive/ngBindHtmlИли, если вы используете очень старую угловую версию JS, вы можете попробовать:
<span ng-bind-html-unsafe="word"></span>
==== ОБНОВЛЕНИЕ ======
На самом деле я чувствую себя немного странно с этой строкой кода на вашем:
$http.get('<?php echo site_url('Home/getword'); ?>')
.success(function($data){
console.log($data);//Please try to check if $data really give you actual response from server
$scope.word=$data;
});
}
Обычно я делалэто с $http
сервисом для получения фактического ответа:
$http.get('<?php echo site_url('Home/getword'); ?>')
.success(function($response){
console.log($response.data);//Please try to check this too and compare with your current code
$scope.word=$response.data;
});
}
==== ОБНОВЛЕНИЕ $http.get()
ИСПОЛЬЗОВАНИЕ AngularJS 1.4 ВЫШЕ (ВКЛЮЧАЯ AngularJS 1.6) =====
Поскольку вы используете AngularJS 1.6, я предлагаю сделать следующее:
$http.get('<?php echo site_url('Home/getword'); ?>')
.then(function($response){//Using .then() instead .success()
console.log($response.data);//Please give me result of this
$scope.word=$response.data;
});
}
И попробуйте использовать
<span ng-bind-html="word"></span>
==== ОБНОВИТЬ HTML-САНИТИЗ. =====
После выполнения strip_tags( $your_content, '<img>' )
и вы обязательно получите ожидаемый ответ.Мне нравится упоминать шаги, которые я пропустил.В вашем контроллере попробуйте включить службу $sce
, как показано ниже:
function myctrl($scope, $http, $sce){
$scope.word = [];
$http.get('<?php echo site_url('Home/getword'); ?>')
.success(function($response){
$scope.word= $sce.trustAsHtml( $response.data );//Just match with your current way about `$response.data` not have to follow this.
});
}
В некоторых версиях требуется включить ngSanitize
в качестве зависимости в вашем модуле.Так что это что-то вроде:
angular.module( 'App', [ 'ngSanitize', 'yourOtherDependency' ] )
Но если без этого ваш угол не будет жаловаться, вам не нужно ставить ngSanitize
в вашу зависимость.
Пожалуйста, прочитайте больше о $sce
at: https://code.angularjs.org/1.6.1/docs/api/ng/service/$sce