요소를 ng-transclude로 대체하는 방법
요소를 다음과 같이 교환할 수 있습니까?ng-transclude
템플릿 요소 전체가 아니라요?
HTML:
<div my-transcluded-directive>
<div>{{someData}}</div>
</div>
지시:
return {
restrict:'A',
templateUrl:'templates/my-transcluded-directive.html',
transclude:true,
link:function(scope,element,attrs)
{
}
};
my-included-included.disples
<div>
<div ng-transclude></div>
<div>I will not be touched.</div>
</div>
제가 찾고 있는 것은,<div>{{someData}}</div>
교체하다<div ng-transclude></div>
. 현재 일어나고 있는 일은 트랜스코드된HTML이 내부로 배치되는 것입니다.ng-transclude
div 요소
그게 가능한가요?
이 문제를 해결할 수 있는 트랜슬루드-치환 디렉티브를 독자적으로 작성하는 것이 가장 좋은 해결책이라고 생각합니다.단, 이 예에 대한 빠르고 더러운 솔루션을 위해 기본적으로 트랜슬레이션 결과를 원하는 위치에 수동으로 배치할 수 있습니다.
my-included-included.disples
<div>
<span>I WILL BE REPLACED</span>
<div>I will not be touched.</div>
</div>
지시:
return {
restrict:'A',
templateUrl:'templates/my-transcluded-directive.html',
transclude:true,
link:function(scope,element,attrs,ctrl, transclude)
{
element.find('span').replaceWith(transclude());
}
};
쉽게 작성할 수 있습니다.ng-transclude-replace
directive, 여기 원본의 복사본이 있습니다.ng-transclude
.
directive('ngTranscludeReplace', ['$log', function ($log) {
return {
terminal: true,
restrict: 'EA',
link: function ($scope, $element, $attr, ctrl, transclude) {
if (!transclude) {
$log.error('orphan',
'Illegal use of ngTranscludeReplace directive in the template! ' +
'No parent directive that requires a transclusion found. ');
return;
}
transclude(function (clone) {
if (clone.length) {
$element.replaceWith(clone);
}
else {
$element.remove();
}
});
}
};
}]);
PS: 또한 이 링크를 체크하여 이 링크의 차이점을 확인할 수 있습니다.ng-transclude
이것은 Angular 1.4.9로 동작합니다(또한 이전 버전도 마찬가지입니다).
return {
restrict: 'E',
replace: true,
template: '<span data-ng-transclude></span>',
transclude: true,
link: function (scope, el, attrs) .........
}
IE 및 Edge를 지원할 필요가 없는 경우display:contents
당신의 css에.그러면 css 수준에서 래퍼가 파괴됩니다.
이 새로운 디스플레이 속성에 대한 자세한 내용은 https://css-tricks.com/get-ready-for-display-contents/를 참조하십시오.
현재 브라우저 지원(향후 Edge 지원 예정): https://caniuse.com/ #timeout=css-display-timeout
언급URL : https://stackoverflow.com/questions/21092885/how-to-replace-the-element-with-ng-transclude
'source' 카테고리의 다른 글
'어린이' 소품의 종류는 무엇입니까? (0) | 2023.04.02 |
---|---|
SQL 쿼리에서 (+)의 의미 (0) | 2023.04.02 |
csv 워드프레스로 내보내기 (0) | 2023.04.02 |
메서드 POST에 대한 Wordpress REST API 사용자 지정 끝점 (0) | 2023.03.28 |
MongoDB에서 프라이머리 키를 설정하는 방법 (0) | 2023.03.28 |