Как вставить в AngulagJS html-переменную?
Как вставить в html в AngulagJS html-переменную?
Вот так вставляет просто текст
{{varName}}
, не преобразовывая в html. А так <span ng-bind-html="varName"></span>вообще ничего не вставляет. Помогите, пожалуйста! $scope.varName = ' > <span class = "btnLink" ng-click = "infoSomeProc()">Информация</span>'; Может, с помощью jQuery как-то можно это сделать? |
Цитата:
Проблема в том, что ты не понимаешь принципы работы Ангулара. :( |
Цитата:
Цитата:
|
Цитата:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='https://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
span {
color: red;
}
</style>
<script type='text/javascript'>
</script>
</head>
<body>
<p>Test</p>
<script type='text/javascript'>
var o=document.getElementsByTagName('p')[0];
o.innerHTML+='<span>Text</span>';
</script>
</body>
</html>
|
При использовании Ангулар, вставить какой-то произвольный динамический кусок, да еще не нарушив "ангуларности" всей страницы не так-то просто...
Это можно сделать используя сервис $compile
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script>
<style type='text/css'>
.btnLink {
color: red;
cursor: pointer;
}
</style>
<script type='text/javascript'>
angular.module('MyMod', [])
.directive('myBuildElements', ['$compile',
function($compile) {
return {
restrict: 'E',
link: function(scope, element) {
element.append('<span class="btnLink" ng-click="infoSomeProc()">Информация</span>');
$compile(element.contents())(scope);
}
};
}
])
.controller('MyCtrl', function($scope) {
$scope.infoSomeProc=function(){
alert('Ok');
};
})
</script>
</head>
<body ng-app="MyMod" ng-controller="MyCtrl">
<my-build-elements></my-build-elements>
</body>
</html>
|
Цитата:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script>
<style type='text/css'>
.btnLink {
color: red;
cursor: pointer;
}
</style>
<script type='text/javascript'>
angular.module('MyMod', [])
.directive('myBuildElements', ['$compile',
function($compile) {
return {
restrict: 'E',
link: function(scope, element) {
element.append(scope.varName);
$compile(element.contents())(scope);
}
};
}
])
.controller('MyCtrl', function($scope) {
$scope.varName='<span class="btnLink" ng-click="infoSomeProc()">Информация</span>';
$scope.infoSomeProc=function(){
alert('Ok');
};
})
</script>
</head>
<body ng-app="MyMod" ng-controller="MyCtrl">
<my-build-elements></my-build-elements>
</body>
</html>
|
| Часовой пояс GMT +3, время: 23:33. |