【发布时间】:2015-11-12 20:26:10
【问题描述】:
我正在开发 Timesheet 应用程序。我已经准备好布局(html/css)。目前我正在研究布局行为。我目前的目标是在指令中提取时间表表头。 Angular 模板 html 应该类似于:
<colgroup class="col_day">
<col ng-repeat="day in header.days" ng-class="someConditions">
</colgroup>
<thead>
<tr>
<th ng-repeat="day in header.days" ng-class="someConditions">
{{someLayout}}
</th>
</tr>
</thead>
我想通过这样的指令使用这个模板:
<table>
<timesheet-header></timesheet-header>
<tbody></tbody>
<tfoot></tfoot>
</table>
问题:
- Angular 不允许在指令的模板中使用多个根 用 替换:真
- 模板内容出现在标签之外(仅当模板包含单个标签时,它才会呈现在表格内
我只有不好的解决方案:
- 为 colgroup 和 thead 创建两个不同的指令(这解决了 多个根,但 html 仍会出现在 table 标记之外)
- 保持模板绑定结果不可见并预先生成生成的副本 html 到表格(通过 jquery)
- 使用指令作为表标签的属性...我试过了,但是这个 删除所有其他表格内容(我尝试过转置)...
注意:我使用的是 AngularJS v1.4.3。在最新的 Google Chrome 中调试。
【问题讨论】:
-
你确定当你创建两个不同的指令时,这些指令的HTML内容出现在
table标签之外吗? -
是的,我尝试了多次。我什至尝试将我的模板简化为纯单标签 html。只有
标签出现在 中。所有其他标签(单个
或单个 )出现在之外(之前)。
我觉得带有 transclude 的属性指令是正确的答案。你能告诉我更多关于你尝试这样做时发生了什么的信息吗?在有一个大角度控制器和广泛的 html 之前。我开始将部分代码拉到单独的指令中,并面临所描述的问题。当我尝试在中使用 Element-Directive 时,模板 html 会从
中推出。随时索取您需要的任何详细信息。
标签: javascript html angularjs