0

我想自定义自动完成的样式和行为以类似于按钮。主要问题是自动完成目前可以在向下箭头、焦点和空白处显示建议。

任何实现这一点的指针?任何可以做到这一点的替代模块?

4

2 回答 2

1

指令 tagsInput 定义为

tagsInput.directive('tagsInput', function($timeout, $document, tagsInputConfig) {
...
 return {
    restrict: 'E',
    require: 'ngModel',
    scope: {
        tags: '=ngModel',
        onTagAdded: '&',
        onInvalidTag: '&',
        onTagRemoved: '&'
    },
    replace: false,
    transclude: true,
    templateUrl: 'ngTagsInput/tags-input.html',

它将ngTagsInput/tags-input.html作为其模板加载。那么我们来看看这个文件

<input class="input"
       ng-model="newTag.text"
       ng-change="eventHandlers.input.change(newTag.text)"
       ng-keydown="eventHandlers.input.keydown($event)"
       ng-focus="eventHandlers.input.focus($event)"
       ng-blur="eventHandlers.input.blur($event)"
       ng-paste="eventHandlers.input.paste($event)"
       ng-trim="false"
       ng-class="{'invalid-tag': newTag.invalid}"
       ti-bind-attrs="{type: options.type, placeholder: options.placeholder, tabindex: options.tabindex, spellcheck: options.spellcheck}"
       ti-autosize>

因此,您可以在ng-click="eventHandlers.input.click($event)"此处添加自定义操作并在指令中实现点击功能。

自定义样式应该类似。

于 2015-02-02T12:52:01.723 回答
0

根据 Rebornix 的回答,我最终使用新的 loadOnClick 参数来分叉和修改自动完成指令,该参数将调用建议列表.load()。

可能需要进行更多微调,但它可以按预期工作。更改提交如下:事件处理程序 - 模板实现

于 2015-02-02T12:59:19.357 回答