指令内部指令。编译不起作用?

时间:2015-05-04 08:40:12

标签: angularjs angularjs-directive

我仍然是角度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

我哪里做错了? 谢谢

1 个答案:

答案 0 :(得分:3)

在html中使用my-directive而不是myDirective声明指令时,需要注意的是简单的事情

<my-directive>Hello</my-directive>

也不需要在不修改DOM的情况下再次编译相同的内容。如果您在模板或templareUrl angularjs中应用任何指令/自定义指令将在移交给我们之前为我们编制。

Demo link