我正在使用Angular ui-select來創建「搜索和選擇組件」。當用戶鍵入搜索字段時,它會立即將項目列表篩選爲自由文本過濾器。此外,用戶可以從下拉菜單中選擇選項,這些選項在過濾器中用作精確的搜索詞(例如按類別過濾)。如何將回調傳遞給擴展現有指令的Angular指令?
我創建了一條額外的指令,該指令擴展了<ui-select>
以訪問該範圍內的$select.search
值。該變量包含用戶鍵入的自由文本。我的問題是,我怎麼能傳遞給父控制器?
理想情況下,我想類似如下:
<ui-select
my-ui-select
on-search-changed="searchChanged(newValue, oldValue)"
multiple
ng-model="ctrl.myModel">
<!-- ... -->
</ui-select>
我的自定義指令將調用on-search-changed
回調與自由文本值。問題是我無法爲my-ui-select
指令定義範圍,因爲它會與ui-select
範圍發生衝突。
如何將回調方法傳遞給我的自定義指令,同時仍然能夠訪問ui-select
範圍?或者有更好的方法來實現我所追求的目標?我建立了a Plunker based on the ui-select examples。我已經定義了myUiSelect
指令,它使用console.log
來輸出搜索條件。我想要的是從那裏撥打DemoCtrl.searchChanged
方法。