【发布时间】:2015-10-03 03:42:29
【问题描述】:
我们的 Angular Web 应用有多个面板。每个面板都有由标题文本和关闭按钮和内容组成的标题,如下图所示。
实现它的代码大致如下结构:
<aside class="right-panel" ng-controller="panelsController">
<header>
<button type="button"><i class="close"></i></button>
<h2>{{currentPanelCaption}}</h2>
</header>
<div class="scrollable-y">
<div ng-show="panels.panelA" ng-controller="ctrlA">
<panel-a-directive></panel-a-directive>
</div>
<div ng-show="panels.panelB" ng-controller="ctrlB">
<panel-b-directive></panel-b-directive>
</div>
<div ng-show="panels.panelC" ng-controller="ctrlC">
<panel-c-directive></panel-c-directive>
</div>
<div ng-show="panels.panelD">
<div ng-include src="'Partials/some_simple.html'"></div>
</div>
</div>
</aside>
但是现在有些面板需要在页眉中注入一些额外的自定义控件。例如,这个新按钮应该只对面板 C 可见。
问题是如何使标题可扩展?是否有一种正确的方法可以将一段 html 嵌入到标题中并使其可用于特定的控制器,例如控制器 C。我不想将 Some Button 的处理程序放在 $rootScope 内。
【问题讨论】:
-
使其(标题)成为指令并传入您需要的内容。
标签: javascript html angularjs