2015-05-15 29 views
0

我有一個場景:我該如何將控制器的數據放入指令中?

1)用戶點擊一個鏈接,併發送一個請求(從控制器)到後端創建一個數據庫記錄。

2)響應作爲控制器中的承諾返回,並能夠從數據庫中查看數據。

3)在#1中點擊的鏈接打開一個指令(元素指令btw),它顯示一個彈出窗口。

4)控制器和指令不相關,但我需要在彈出窗口中顯示數據(由指令打開)。

我是AJS新手,我的知識很少。我應該使用服務/ rootcope?向指令發送數據承諾。

回答

1

這聽起來像你的主要問題是如何獲取數據到指令。我可以想到兩種方法(可能更多)。

您可以使用指令的隔離區scope從控制器傳入信息。綁定到此範圍的選項很少(請參閱scope section of $compile)。用於雙向結合的=或用於表達結合的&&。這可能看起來像

app.directive('myDirective', [ 
    function() { 
     restrict: 'E', 
     templateUrl: 'some template url', 
     scope: { 
      databaseRow: '=' 
     } 
    } 
]) 

這將在HTML

<my-directive database-row="controllerResult"></my-directive> 

您還可以創建和注入服務到您的指令,並移動DB邏輯到指令這樣使用。您可以讓控制器broadcast爲事件或更改變量以觸發該指令,或者甚至只在指令內有一些可見元素響應鼠標單擊。

相關問題