我创建了指令,在指令体之后追加transclude值。我不能在我的指令中使用ng-transclude,因为它为简单文本创建了transclude值并且它会破坏我的页面。我用
controller: function($scope, $element, $transclude) {
$element.append($transclude().contents());
}
追加它。它工作得很好,但是当我在ng-repeat中使用我的指令时出现问题并且$ transclude()。contents()不包含我的文本。有人可以解释这种行为吗?
答案 0 :(得分:0)
我无法解释为什么$ transclude()。contents()不包含您的文字,但我可以展示如何轻松修复,请在下面编写代码。
var app = angular.module('app', []);
app.controller('MainCtrl', function($scope) {
});
app.directive('test', function(){
return {
transclude: true,
restrict: 'E',
template: '<div >From directive </div> <div ng-transclude></div><hr/>',
};
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
<body ng-app="app">
<div ng-controller="MainCtrl">
<div ng-repeat="a in [1, 2, 3, 4, 5]">
<test>From transclude {{a}}</test>
</div>
</body>
&#13;