0

我試圖用來自服務的數據更新指令的內容。它的工作原理是這樣的:Angularjs控制器,指令和服務之間的數據綁定

  1. 服務(HTML5畫布服務) - >呼籲一些動作控制器的方法
  2. 控制器更新$ scope.directiveData通過服務叫
  3. 指令(範圍裏面的方法:真)應根據新數據更新其內容

問題是指令不更新其內容。但是,當我在控制器中添加定期更新到指令數據時:

$interval(function() {$scope.directiveData.abc;}, 100); 

指令更新其內容!

對此行爲有任何解釋嗎?我怎樣才能擺脫這種定期更新?

我在模擬的jsfiddle問題:https://jsfiddle.net/eyNYw/857/

回答

1

scope: true使得分離指令範圍(Angular directive. Isolating the Scope of a Directive)。所以這個指令看不到控制器變量$ scope.directiveData。

您可以添加獨立變量這樣

scope: {directiveData: '='} 

'=' - 是指兩個方式,通過指令結合

再經過$ scope.directiveData屬性

<your-directive directive-data="directiveData"></your-directive> 

當你更新$ scope.directiveData角將更新這一個d irective。

+0

我試過這個,範圍:false,它根本不隔離範圍。同樣的行爲。我認爲這不僅是控制器指令之間的數據綁定。這也是關於從控制器調用功能的服務。 – user2616232

+0

需要更多的細節。至少是控制器動作和指令代碼的例子。 – NechiK

+0

模擬jsfiddle中的錯誤:https://jsfiddle.net/eyNYw/857/ – user2616232

相關問題