2016-11-16 6 views
0

У меня есть <select class='select'> в @Component.Угловая 2 - Директива с JQuery и Select2

Я следую шаблону, который стилирует каждый выбор с помощью сторонней библиотеки Select2. HTML + Jquery + Выбор2 код:

$(document).ready(function() { 
    $('.select').select2(); 
}); 

мне было интересно, если это было бы хорошей идеей, чтобы создать директиву делать это, так что я пробовал:

import {Directive, ElementRef} from '@angular/core'; 

@Directive({ 
    selector: '[simple-dropdown]' 
}) 
export class SimpleDropdownDirective { 

    constructor(el: ElementRef) { 
    $(el.nativeElement).select2(); 
    } 

} 

Но я получаю ошибка в методе select2(). Поскольку это сторонняя библиотека, я не думаю, что смогу установить ее, как я сделал с jQuery.

Что вы предложите?

+0

Вы видели какой-либо или весь http: // stackoverflow. com/q/36173678/3001761, https://www.npmjs.com/package/angular2-select2, https://www.npmjs.com/package/ng2-select2 – jonrsharpe

+0

@jonrsharpe Да. Select2 был только примером сторонней библиотеки. Я столкнулся с той же проблемой с разными библиотеками. Мне было интересно, могу ли я импортировать select2.js, чтобы я мог сделать пример своей директивы, как в http://stackoverflow.com/a/35055539/5922900. Посмотрите, что функция выпадающего меню происходит из библиотеки семантики, которая также была импортирована. –

+0

Неизбежно * «как я могу взаимодействовать с какой-либо третьей библиотекой» * будет слишком широким. Если вы можете показать конкретную ошибку, которую вы получите в текущем коде, который может помочь решить эту проблему. – jonrsharpe

ответ

0

Select2 зависит от jQuery, поэтому это не будет работать из коробки.

Когда вы используете jQuery для выбора элемента, вы не получаете собственный элемент, а расширенный элемент jQuery. У вас есть возможность переместить Select2 в Angular 2 или заставить его работать с собственными API-интерфейсами браузеров, такими как querySelectorAll. (Вы также можете попробовать сделать запрос функции автору, но поскольку Select2 заявляет, что он зависит от jQuery, я бы не стал делать ставку на его реализацию.)

+0

То, что я пытаюсь сделать, такое же, как и с семантикой: http://stackoverflow.com/a/35055539/5922900 Посмотрите, что выпадающая функция исходит из библиотеки семантики, которая также была импортирована. –

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

  • Нет связанных вопросов^_^