2014-06-03 4 views
0

Я использую удивительную, выполненную на заказ автозаполнение директивы под названием 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> 

Я еще не достаточно здравого смысла, чтобы добавить свой собственный материал в директиве. Так что я хотел бы знать как я могу добавить угловые директивы 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

Указанные угловые директивы предназначены для использования со специфическими элементами HTML, а не с любыми элементами. Например, если вы Reivew documentation для ngFocus он скажет вам, что это должно было быть в использовании в:

window, input, select, textarea, a 

Так что для того, чтобы использовали эти директивы в ваших пользовательских директив вместо использования «autocomplete», как элемент вам нужно будет использовать один из элементов выше.

+0

Извините, я забыл упомянуть, что шаблон для автозаполнения - это . –

Смежные вопросы