我正在使用一个名为Almighty-Autocomplete的超棒的自定义自动完成指令。但是我错过了一些功能。
通用指令如下:
.directive('autocomplete', function () {
var index = -1;
return {
restrict: 'E',
scope: {
searchParam: '=ngModel',
suggestions: '=data',
onType: '=onType',
onSelect: '=onSelect'
},
controller: ['$scope', function ($scope) {...}
link: function (scope, element, attrs) {
var attr = '';
// Default atts
scope.attrs = {
"placeholder": "start typing...",
"class": "",
"id": "",
"inputclass": "",
"inputid": ""
};
} ....
模板如下:
<div class="autocomplete {{ attrs.class }}" id="{{ attrs.id }}">
<input
type="text"
ng-model="searchParam"
placeholder="{{ attrs.placeholder }}"
class="{{ attrs.inputclass }}"
id="{{ attrs.inputid }}"/>
</div>
我还不足以将自己的东西添加到指令中。所以我想知道如何将Angular指令ng-blur
和ng-focus
添加到自动完成指令中,以便在我使用它时
<autocomplete ng-model="truck.license.number"
attr-placeholder="VD 102 203" data="placa_numeros"
on-type="updateNumeros"
on-select="select"
ng-blur="offFocus()"
ng-focus="onFocus()">
</autocomplete>
我可以让ng-blur
和ng-focus
执行一项功能。
答案 0 :(得分:0)
那些角度指令旨在与特定HTML元素一起使用,而不是任何元素。例如,如果您为ngFocus
重新发送documentation,它会告诉您它本应在使用中:
window, input, select, textarea, a
因此,为了在自定义指令中使用这些指令而不是使用&#34; autocomplete
&#34;作为元素,您需要使用上述元素之一。