2014-05-19 106 views
0

我構建了一個指令<playlist>,它調用我的自定義服務返回並顯示視頻列表。到現在爲止還挺好。但是,我不希望此指令呈現並調用我的API,直到用戶單擊頁面上其他上的鏈接從控制器呈現指令

如何獲得指令外部的鏈接觸發<playlist>項目的呈現?我尋找某種onShow事件無濟於事。

回答

2

您可以使用ng-if directive將指令保留在DOM之外,直到點擊鏈接。當你想讓它顯示/渲染

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

然後你只需設置showPlaylist爲true:所以你的HTML代碼將看起來是這樣的。

+0

這是偉大的,除了它似乎ngIf刪除時刪除其範圍。 'showPlaylist'將是一個切換,因此它可以被顯示和隱藏,但是我只想在第一次顯示API時調用API,然後將結果緩存在範圍中。 – Fenda

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屬性,因此範圍不會重置。