我正在研究一个自定义指令,当范围内没有任何内容可显示时,该指令将显示嵌入的空模板 - 就像在这个plunker中一样。
我无法删除 ng-repeat 中的空模板,也无法仅在没有数据时显示空消息。没有可显示的内容时,如何显示空模板?
我正在研究一个自定义指令,当范围内没有任何内容可显示时,该指令将显示嵌入的空模板 - 就像在这个plunker中一样。
我无法删除 ng-repeat 中的空模板,也无法仅在没有数据时显示空消息。没有可显示的内容时,如何显示空模板?
实际上,我不确定在指令中这样做是否正确 - 您最好在主模板中显示不同的 DIV。
但这是我的想法:不是转置,而是根据是否显示任何项目进行手动编译。
这是工作(但仍然有点脏)plunker:http ://plnkr.co/edit/dxUjpeCbSKKjaXqK9qBF?p=preview
请注意,即使我正在查看整个列表,也仅在状态(空/非空)更改时才进行重新编译。
注意 2:它不是完全嵌入 - 模板内的范围(空且非空)将被隔离到指令的范围内。您可以通过使用不同的编译或子范围来解决这个问题 - 有几个解决方案,但它们与这个问题无关:)
您不需要为此提供指令。只需从中删除指令app.js
并将按钮后的代码替换为:
<div ng-hide="things.length">nothing to show here</div>
<div ng-show="things.length">
<ul>
<li ng-repeat="thing in things">thing #{{thing}}</li>
</ul>
</div>