从控制器渲染指令

时间:2014-05-19 16:40:59

标签: angularjs

我已经构建了一个指令<playlist>,它调用我的自定义服务返回,然后显示一个视频列表。到现在为止还挺好。但是,在用户点击页面上别处的链接之前,我不希望此指令呈现并调用我的API。

如何在指令之外使用链接触发<playlist>项目的呈现?我找了一些onShow事件无济于事。

2 个答案:

答案 0 :(得分:2)

您可以使用ng-if directive将指令保留在DOM之外,直到单击链接。所以你的HTML看起来像这样:

<div ng-if="showPlaylist">
    <playlist />
</div>

然后,当您希望它显示/渲染时,您只需将showPlaylist设置为true。

答案 1 :(得分:0)

我能够根据 dnc253 的反馈来解决这个问题。

<a href="" ng-click="showPlaylist = showPlaylist ? false : true">Toggle Playlist</a>

<div ng-if="showPlaylist != undefined">
     <playlist ng-show="showPlaylist"></playlist>
</div>

在初始页面加载<playlist>被隐藏但未呈现。单击该链接将呈现<playlist>。后续单击会切换ng-show属性,因此不会重置范围。