콘텐츠를 복사하여 마치 내 <div data-ng-transclude="">
이라고 쓰는 파일에 콘텐츠를 복사하여 붙여 넣은 것처럼 작동하도록 콘텐츠를 변환하고 싶습니다. 어떻게해야합니까?ng-transclude를 만드는 방법은 ng-include (범위 측면에서)와 비슷합니까?
ng-include
을 템플릿을 포함하도록 사용할 수 있으며 스크립트 태그를 사용하여 템플릿을 정의 할 수 있음을 알고 있습니다. 그러나 이것은 템플릿 캐시를 혼란시키고 템플릿 네임 스페이스를 오염시킵니다.
은 내가 하나 가질 수 있도록이 작업을 수행 할 수 내가 내 항목을 표시 할 방법을 정의하는 파일,
<!-- list directive to show the items -->
<div data-item-list="" data-values="vm.items">
<!-- content to include to display list items -->
<div class="form-relation-picker-value" ng-bind="item.value.title"></div>
<div class="form-relation-picker-subtitle" ng-bind="item.value.subTitle"></div>
</div>
하나의 파일 (또는 그 이상! 그게 요점이다)는에 목록의 구조가 작동하는 방식을 정의합니다. 내가 말했듯이, 그것은 클러, 그래서 같은리스트 구조와
<div data-item-list="" data-values="vm.items" data-template-to-use="randomhash">
<script type="text/ng-template" id="randomhash">
<div class="form-relation-picker-value" ng-bind="item.value.title"></div>
<div class="form-relation-picker-subtitle" ng-bind="item.value.subTitle"></div>
</script>
</div>
...
<div class="list-container">
<div class="list-item"
data-ng-click="vm.select(item)"
data-ng-repeat="item in vm.items | orderBy : vm.orderBy"
data-selected="{{vm.isSelected(item)}}">
<div class="flex">
<div data-ng-include="vm.templateToUse"></div>
<div class="grid-col flex-icon form-relation-picker-chrome-height-fix">
<div data-ng-show="vm.isSelected(item)" class="icon check"></div>
</div>
</div>
</div>
</div>
을하지만 :
이
<div class="list-container">
<div class="list-item"
data-ng-click="vm.select(item)"
data-ng-repeat="item in vm.items | orderBy : vm.orderBy"
data-selected="{{vm.isSelected(item)}}">
<div class="flex">
<div ng-transclude=""></div><!-- item display via transclude -->
<div class="grid-col flex-icon form-relation-picker-chrome-height-fix">
<div data-ng-show="vm.isSelected(item)" class="icon check"></div>
</div>
</div>
</div>
</div>
내가 같은 것을 할 경우 작동 템플릿 캐쉬.
콘텐츠를 transclude하면 transcluded 콘텐츠가 <div data-item-list=""
이 포함 된 지시어의 범위로 평가되므로 작업을 중단합니다. 즉, "item"이 존재하지 않습니다.
transcluded 콘텐츠가 transcluded 콘텐츠를 포함하는 지시어의 범위로 평가되도록하려면 어떻게해야합니까?
흥미로운 내용은 내일 직장에서 자세하게 볼 것입니다. – Pimgd
위대한 작품! 템플릿을 별도의 html 파일로 유지하기 위해'$ templateCache'를 사용할 수 있었고, 문자열 치환으로 변환 된 원시 html을 삽입 할 수있었습니다. 각도 1.4를 사용합니다. – Pimgd