2013-03-19 42 views
5

我對AngularJS相當陌生,並試圖去思考Angular方式。
現在我正在開發一款應用程序,該應用程序具有不同的功能,可以在名爲FeatureRegistry的角度服務中註冊。從那裏他們被拿到並從FeatureSelectionController插入側邊欄。通過點擊一個特徵,應該調用適當特徵的startFeature()函數,之後該特徵應該被添加到主視圖(但是DOM操作應該在哪裏發生?)。在AngularJS中插入指令到HTML中?

所以有我的問題。什麼是向DOM添加指令的最佳方式(角度方式),我不一定要用jQuery來做到這一點(並且也想限制$ compile,$ watch等的使用)。

mainView中的指令可以有一個隔離範圍,因爲這些特徵執行彼此獨立的操作(它們共享的數據封裝在角度服務中)。

Here is an image

什麼是插入指令的角方式

我總是讀到DOM操作應該只發生在指令中,但在文檔和其他問題中,我沒有找到辦法做到這一點。

+1

+1有關正確提問的方法。 – Stewie 2013-03-19 15:38:09

回答

3

這裏有一個快速演示:http://plnkr.co/edit/eZTtRVTPb7k9kgS8woKh?p=preview

我不一定看到這裏的指令需要...除非有很多的名單,最大化的功能特徵之間通用的功能,並最小化功能。

如果你真的有很多的三個列表之間共同的功能,你可以做這樣的事情:

<feature ng-repeat="f in registry.all()" model="f" state="list"> 
<feature ng-repeat="f in registry.maximized()" model="f" state="open"> 
<feature ng-repeat="f in registry.minimized()" model="f" state="minimized"> 

然後在你的指令模板,你可以有那麼你的常用功能確定取決於有什麼在使用ng-switchng-show的狀態。

您是否需要編寫實際指令的幫助?

相關問題