반응형
지시문 삽입(프로그래밍 각도)JS
이벤트를 트리거하고 디렉티브를 컴파일하여 그 자체를 DOM의 위치에 삽입할 수 있도록 하고 싶습니다.저는 지금 이런 걸 가지고 있어요.
//controller
angular.module('app').controller('MainCtrl', function ($scope, $compile) {
$scope.$on('insertItem',function(ev,attrs){
var el = $compile( "<chart></chart>" )( $scope );
$scope.insertHere = el;
});
});
// directive
angular.module('app')
.directive('chart', function () {
return {
template: '<div>My chart</div>',
restrict: 'E',
link: function postLink(scope, element, attrs) {
element.text('this is a chart');
}
};
});
필요한 모든 것을 가지고 "el"이라는 물체를 볼 수 있지만 DOM에 삽입할 수 없습니다. 단서는 없습니까?
먼저 dom 요소를 작성한 후 컴파일하여 문서에 추가해야 합니다.다음과 같은 경우:
$scope.$on('insertItem',function(ev,attrs){
var chart = angular.element(document.createElement('chart'));
var el = $compile( chart )( $scope );
//where do you want to place the new element?
angular.element(document.body).append(chart);
$scope.insertHere = el;
};
여기에 간단한 예를 작성했습니다.http://plnkr.co/edit/n7SZpyeQ9nbjVSYA7ibB?p=preview
언급URL : https://stackoverflow.com/questions/16656735/insert-directive-programmatically-angularjs
반응형
'programing' 카테고리의 다른 글
Angularjs를 사용하여 프로바이더에 의존관계를 주입하려면 어떻게 해야 합니까? (0) | 2023.03.28 |
---|---|
Angular를 사용하여 새 창에서 링크 열기JS (0) | 2023.03.28 |
src 변수를 사용한ng-module (0) | 2023.03.28 |
MacOS의 VS 코드에서 Python 스크립트를 시작할 때 "SyntaxError: invalid 구문"이 표시됩니다. (0) | 2023.03.28 |
SVG를 Next.js로 가져올 수 없습니다. (0) | 2023.03.28 |