Как вставить в 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, время: 08:30. |