我试图在指令中重复一个指令,所以我可以在每个指令上有一个模板,但问题是我只能在使用 ng-transclude 时显示第一个条目
这是我到目前为止所做的事情
<div ng-app="TestApp">
<div ng-controller="TestCtrl">
<test-collector>
<test-data xx-value="Mouse" xx-href="https://fb.com" />
<test-data xx-value="Keyboard" xx-href="https://goo.gl" />
</test-collector>
</div>
</div>
和控制器
var app = angular.module('TestApp', []);
app.controller('TestCtrl', ['$scope', function($scope){
}]);
app.directive("testCollector", function () {
return {
restrict: "E",
scope: {},
transclude: true,
replace: true,
controller: function($scope) {
},
template: '<div>' +
'<div ng-transclude></div>' +
'</div>'
}
});
app.directive("testData", function(){
return {
restrict: "E",
require: '^testCollector',
transclude: true,
replace: true,
scope: {
xxValue: '@',
xxHref: "@"
},
template: '<a href="{{xxHref}}">{{xxValue}}</a>'
}
});
我只能鼠标
我准备了一个小提琴,看它在行动中CLICK HERE
请帮助。
提前谢谢
答案 0 :(得分:1)
您正在弄乱指令<test-data>
标记。您尚未关闭test-data
。您为test-data
元素提供了自我结束标记,如<test-data />
。
<强> HTML 强>
<div ng-app="TestApp">
<div ng-controller="TestCtrl">
<test-collector>
<test-data xx-value="Mouse" xx-href="https://fb.com"></test-data>
<test-data xx-value="Keyboard" xx-href="https://goo.gl"></test-data>
</test-collector>
</div>
</div>