я следующий код, который производит не ожидаемый результат:angularjs transclude и нг-повторить: делать это правильно
<div class="outer">1<div>content</div></div>
<div class="outer">2<div>content</div></div>
<div class="outer">3<div>content</div></div>
<div class="outer">4<div>content</div></div>
Вместо результат:
<div class="outer">1</div>
<div class="outer">2</div>
<div class="outer">3</div>
<div class="outer">4<div>content</div></div>
Кажется, что ng- повтор выполняется первым, а для последнего элемента он обрабатывает переключение. Я знаю, что ng-repeat создает узлы во время фазы компиляции, но я думал, что в фазе ссылки функция ссылок вызывается для каждого узла и добавляет встроенный контент.
Может кто-нибудь объяснить, что здесь происходит и как это сделать правильно?
<!DOCTYPE html>
<html ng-app="Transclude">
<head lang="de">
<meta charset="UTF-8">
<title>Transclude</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js"></script>
</head>
<body>
<outer ng-repeat="counter in [1,2,3,4]" value="counter">
<div>content</div>
</outer>
<script>
angular.module('Transclude', [])
.directive('outer', function() {
return {
restrict: 'E',
scope: {
value: '='
},
replace: true,
transclude: true,
template: '<div class="outer">{{value}}</div>',
link: function(scope, element, attributes, controller, transclude) {
var transcludedContent = transclude();
element.append(transcludedContent);
}
};
})
</script>
</body>
</html>
Вы хотите добавить '