我仍然是角度JS的新手,并想学习指令。我想制作一个嵌套的指令,类似于这样的菜单:
<myDirective>Hello</myDirective>
非常简单,我已经用$ compile:
这样说了.directive('myDirective', function($compile) {
return {
restrict: 'E',
transclude: true,
template: '<dialog2><div ng-transclude></div></dialog2>',
link: function (scope, element, attrs) {
$compile(element.contents())(scope);
}
};
})
.directive('dialog2', function() {
return {
restrict: 'E',
transclude: true,
template: '<b>Hi</b><div ng-transclude></div> there'
};
});
现在,它只显示为
Hello
它应该说
Hi Hello there
我哪里做错了? 谢谢
答案 0 :(得分:3)
在html中使用my-directive
而不是myDirective
声明指令时,需要注意的是简单的事情
<my-directive>Hello</my-directive>
也不需要在不修改DOM的情况下再次编译相同的内容。如果您在模板或templareUrl angularjs中应用任何指令/自定义指令将在移交给我们之前为我们编制。