如何在自定义指令中显示空模板

时间:2013-04-01 17:56:39

标签: javascript angularjs ng-repeat

我正在开发一个自定义指令,当示波器中没有任何内容显示时,它将显示已转换空模板 - 如此plunker

我无法在ng-repeat中删除空模板,也无法在没有数据时显示空消息。如果没有显示任何内容,如何显示空模板?

2 个答案:

答案 0 :(得分:1)

实际上我不确定在指令中执行它是否正确 - 您最好在主模板中显示不同的DIV。

但这是我的想法:不是转换,而是根据是否有任何要显示的项目进行手动编译。

这里有效(但仍然有点脏)plunker:http://plnkr.co/edit/dxUjpeCbSKKjaXqK9qBF?p=preview

请注意,即使我正在观看整个列表,只有在状态(空/非空)发生更改时才会重新编译。

注意2:它不是完全转换 - 模板内的范围(空和非空)将被隔离到指令的范围。您可以通过使用不同的编译或子范围来解决这个问题 - 有几个解决方案,但它们与此问题无关:)

答案 1 :(得分:0)

你不需要这个指令。只需从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>

以下是工作代码:http://plnkr.co/edit/u4FF77y6dhXHj0FQC9Ai?p=preview