我正在使用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
方法。