1

我想使用这个 HTML 创建一个 transclude 指令:

%h2 Widgets :
.row-fluid{ "ng-controller" => "ApplicationDashboardCtrl" }
  .span6
    %widget{ type: "chart", "ng-model" => "widget", "ng-repeat" => "widget in widgets","ng-transclude" => "" }
      .chart.bottom20
        {{ widget.title }}

      %data-source{ src: "/public/test.json"}
      %lines{ y: "value", x: "label" }

  .span6

问题是,我的两个指令不共享相同的范围实例。我创建了一个 plinkr 来代表我的问题:

我使用 Plnkr 的问题

我不明白为什么我的两个指令不共享相同的范围以及为什么我的“widget”指令没有捕获事件“setupExtra”。我知道,我可以使用 $rootScope 但我想不用它。

任何想法?

4

1 回答 1

3

我找到了我的解决方案,我必须使用 $emit 而不是 $broadcast

  • $broadcast -- 将事件向下调度到所有子范围,
  • $emit——通过作用域层次向上调度事件。

对不起,我为其他初学者保留它:)

于 2013-08-14T13:02:12.817 回答