2013-08-16 47 views
4
  • 我有一個顯示4張閃存卡,其中3是由一個指令
  • 1下最後一張牌填充的應用程序,我想取決於控制器
  • 基於該視圖上的值(和相應的控制器),控制器可以填寫第4張牌的值。控制器如何與AngularJS中的指令進行對話?

  • 爲了演示,請參閱here

問題
- 我如何更新一些控制器4卡的價值?
- 將某個控制器的值推送到指令是一個好主意嗎?
- 什麼可能是最好的解決方案?

我角新手,讓我的頭周圍

回答

7

你的問題,我想你需要類似的東西:http://plnkr.co/edit/gp0zIwnj9Oz3IpQPXhDI?p=preview
我添加的數據在你的指令範圍,這個數據是從通過控制器

scope: { 
    ngModel: '=', 
    somedata:'@' 
}, 

的HTML:

<data-ng-pt-header somedata='{{somedata}}'></data-ng-pt-header> 

和Controller:

$scope.somedata='This comes from the controller'; 

,當然在模板:

 <div class="well info-card days-left"> 
     <legend>Spent</legend> 
     <span>{{somedata}}</span> 
    </div> 

這其中的許多方法將數據傳遞給一個指令,最簡單的一個,如果你想指令的更多信息也有這個優秀髮布:http://amitgharat.wordpress.com/2013/06/08/the-hitchhikers-guide-to-the-directive/

對於另外兩個問題,是的,從控制器發送數據到指令可能是一個好主意,它很大程度上取決於您想要的數據和邏輯,但您的應用似乎需要它。
最好的解決方案是不存在(至少不是隻看到一個簡單的例子),但因爲它似乎是一個簡單的數據交換,去最簡單的方法似乎滿足您的要求;)

玩得開心

+0

我在我的代碼中試圖相同。但它沒有將控制器的值傳遞給html –

1

指令中的控制器控制指令的範圍。如果你想傳遞來自其他控制器的數據,那麼你必須通過指令中的控制器從其他控制器傳遞。

在stackoverflow中有幾個線程與如何在控制器之間傳遞數據有關。

希望這會有所幫助。

+1

這比評論更多評論。對這些線程的任何引用? –