在ng-repeat中转换,控制器函数不正确的转换参数

时间:2014-09-28 18:16:02

标签: angularjs

我创建了指令,在指令体之后追加transclude值。我不能在我的指令中使用ng-transclude,因为它为简单文本创建了transclude值并且它会破坏我的页面。我用

controller: function($scope, $element, $transclude) {
     $element.append($transclude().contents());           
}

追加它。它工作得很好,但是当我在ng-repeat中使用我的指令时出现问题并且$ transclude()。contents()不包含我的文本。有人可以解释这种行为吗?

这里的例子: http://plnkr.co/edit/1y4avkwmgjhiKkuoZlug

1 个答案:

答案 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;
&#13;
&#13;