我已經被分配了創建一套「卡」的任務,就像在谷歌和其他類似的網站上使用AngularJS作爲儀表板一樣。每張卡都有獨立的功能,並且只要數據從API返回,它們都必須立即出現。將來,我們將允許將這些卡片固定/取消固定到儀表板,以及由用戶訂購。Angular Directive - 動態控制器
我已經創建了一個「卡片經銷商」指令,該指令將包含卡片對象數組中的每張卡片的ng-repeat。每張卡都需要有自己的動態模板和控制器,這是我遇到問題的地方。我能夠弄清楚如何通過一個動態的templateUrl
,但控制器是一個不同的故事。我已經完全想通弄明白了,通過模仿什麼,我看了一個Pluralsight視頻,我應該只能夠到card.controller
變量傳遞到指令「CTRL」屬性是這樣的:
<card-dealer ng-repeat="card in cards" card="card" ctrl="{{card.controller}}"/>
然而,ctrl='{{card.controller}}'
變量在指令發送到指令之前不會被解析。在指令中,我通過設置controller: '@'
和name: 'ctrl'
來動態設置控制器。這將查找名爲「ctrl」的屬性的元素,並將其值作爲控制器的名稱返回。當我輸入指令控制器的字符串名稱而不是使用{{card.controller}}
變量時,此方法起作用,但僅輸入字符串不是動態的。
我需要在達到指令前解析變量,以便它查找正確的控制器名稱。我創建了JS小提琴來演示我的問題:http://jsfiddle.net/kPdCk/。這應該返回兩個警報框,一個代表每個指令控制器。如果你現在運行它,你會在控制檯日誌中看到它正在嘗試搜索一個帶有變量名稱而不是變量值的控制器。
請幫忙!!這對我們整個儀表板的未來至關重要,一旦我們弄清楚如何傳遞動態控制器名稱,我們將是一個黃金。提前致謝!!!