我想在另一个指令中使用指令。
父指令在其模板中使用子指令。
这是我的代码。
HTML
<div ng-app="myApp">
<div ng-controller="Ctrl">
<svg>
<my-line></my-line>
</svg>
</div>
</div>
的javascript
var myApp = angular.module('myApp',[
'myController',
'myDirectives'
]);
//Controller
var myControllers = angular.module('myControllers', []);
myControllers.controller('Ctrl', function($scope){
$scope.line = [
{ nodeId:'1'},
{ nodeId:'2'},
{ nodeId:'3'}
]
});
//Directives
var myDirectives = angular.module('myDirectives',[]);
myDirectives.directive('myLine',function(){
return {
restrict: 'E',
template:
'<g ng-repeat="node in line">' +
'<my-node node="{{node}}"></my-node>' +
'</g>'
};
});
myDirectives.directive('myNode',function(){
return {
restrict:'E',
scope:{
node:'=node'
},
template:
'<text x="0" y="0">{{node.nodeId}</text>'
}
});
这是jsfiddle链接。
但是孩子指令没有显示。
我该怎么办?
答案 0 :(得分:0)
你的小提琴中有一些错误。我把它们搞定了。
首先应该是
var myApp = angular.module('myApp',[
'myControllers',
'myDirectives'
]);
接下来,在myNode指令中它应该是
'<text x="0" y="0">{{node.nodeId}}</text>'
之后,我在两个指令配置中添加了替换。
更新小提琴:http://jsfiddle.net/vNF9L/
现在,没有显示任何内容,但如果您检查dom,您将看到所有内容都按照您的需要输出。