回答

1

我認爲你已經非常接近使用正確的方法。您已經有一個控制器,但有兩件事丟失:

  1. 需要在父指令控制器的上下文中設置排序函數。 (即this
  2. 然後您需要require: '^customTable'。 (^用於表示我們正在尋找父指令的控制器)。

現在在dropDownSortMenu的鏈接功能,你可以訪問父控制器的上下文,並可以做任何你喜歡的。

Demo

+0

感謝約什..這部作品 – runtimeZero

+0

哦,天哪,你是好很多:) –

0

使用範圍的情況下調度員; $emit(name, args)用於向父範圍發送事件,並且$broadcast(name, args)將通過層次結構向下收集事件。
要捕捉拋出的事件,請使用$on(name, listener)聽衆。

你也可以同樣是指$scope.$parent向上行進鏈條(或$scope.$parent.$parent等),但這不推薦 - 你將不得不查找範圍層次n水平時,渲染代碼剛性(如果更改範圍嵌套層次,例如在某處添加ng-repeat?)。


您還可以利用transclusion的指令(在適當的時候) - 這將使你的模型所在的指令的隔離範圍之外,從而使上述任何控制器的自然訪問層次結構中的(前提是沒有孤立的範圍是在路上)。
有關指令'tranclude屬性的說明,請參閱$compile service docs

相關問題