일부 동적 정보를 표시하기 위해 ng-repeat-start를 사용하는 각도 응용 프로그램이 있습니다.ng-repeat와 링크 된 수동 코드 삽입
<div>
<table>
<tbody>
<tr my-directive ng-repeat="data in vm.data">
<td ng-bind="data.id"></td>
<td ng-bind="data.id"></td>
</tr>
<tr ng-repeat-end>
<td>extrarow</td>
</tr>
</tbody>
</table>
</div>
가 나는 또한 일부 데이터의 값에 따라 전체 TR에 클래스를 적용하는 데 사용할 지시문을 만들었습니다. $ watch를 사용하는 대신 링크를 사용하여 링크를 사용하고 싶었습니다.
그 자체가 많은 내부를 포함 할 수 있으므로이 작업을 위해 transclude를 사용하고 싶습니다. 나는하지는이 내 모든 스타일을 나누기로 태그 내 테이블에 삽입 할, 그래서 수동으로이 작업을 수행하기 위해이 같은 있습니다
function myDirective() {
return {
transclude: true,
scope: {},
link: function($scope, $element, $attrs, $ctrl, $transclude) {
var cloned = $transclude();
$element.append(cloned);
}
}
}
문제는 예상대로이 작동하지 않는 경우입니다. 복제 된 객체는 ng-repeat의 마지막 행에만 추가됩니다. 아마 $ element 객체 때문일 수도 있지만, 그것에 대해서는 확실하지 않습니다.
이 문제는 jsfiddle에 재현되었습니다.
문제가있는 위치에 대한 아이디어가 있습니까? 많은 감사. 당신이 당신의 내용에 따라 클래스를 추가하려면 사용할 수
회원님이 달성하기 위해 노력하고 있지만, transclude 제거하는지 확인하십시오 당신이 단순히 TR을 설정하려는 경우 https://jsfiddle.net/tf9s7skq/1/ , 당신의 지시자에서 진실을 클래스를 데이터를 기반으로 사용 element.css() - transclusion 여기에 할 일이 잘못된 것 같습니다. – RamblinRose
transclude : false가 맞는지 확실하지 않지만 모든 요소가 표시되지만 $ transclude는 더 이상 함수가 아니기 때문에 오류가 발생합니다. 또한 마지막
좋아요, @ 램 블린 로즈, 템플릿이 없기 때문에 당신이 옳다고 생각합니다. 나는 transclude를 사용할 필요가 없습니다. 훨씬 쉽습니다. 감사합니다. – David