2013-12-12 37 views
0

瞭解NG-展現在考慮下面的代碼AngularJS指令

http://jsbin.com/uYETOSUM/2/edit?html,js,output

我想只顯示第一個下拉第一(父問題的JSON)。用戶選擇了一個選項後,我想顯示其他兩個下拉列表中的其中一個(JSON中的additionalQuestion對象中的子項)。在用於創建表單輸入字段的JSON中給出了要顯示的下拉列表。

要做到這一點,我已使用ng-show進行了實驗,但我似乎找不到合適的位置來放置自定義ng-show代碼。我想ng-show是這樣的模板:

ng-show"showQuestion()" 

其中showQuestion()遍歷所有問題和匹配的PreviousQuestionConstraint,看看哪個的其他問題,可讓系統根據在第一個問題中選擇選項的值。

  • 它應該在控制器中嗎?
  • 它應該在指令中嗎?
  • 它應該在指令的鏈接器函數中嗎?

到目前爲止所有的嘗試都沒有顯示任何結果。

回答

0

經過許多麻煩,我已經設法使用&attr隔離作用域語法爲您提供了一個工作示例,該語法提供了在父作用域的上下文中執行表達式的方法,在您的示例中一直到showQuestion()函數在你的QuestionsCtrl控制器上。

http://jsbin.com/EkIqAju/2/edit

+0

太棒了!如果它很麻煩,也許這不是Angular的正確方法? IE瀏覽器。如何在'showQuestion()'函數中獲取當前指令的對象?換句話說,我如何訪問在控制器中針對'showQuestion()'進行驗證的問題對象? – user3097455

+0

@ user3097455我從來沒有真正使用過像你之前的例子那樣的遞歸指令,發現我必須爲這兩個指令的每一個使用兩個單獨的屬性名稱才能工作。根據你的要求,我認爲這是正確的做法。 – Beyers