【问题标题】:Angular 2 - Directive with JQuery and Select2Angular 2 - 带有 JQuery 和 Select2 的指令
【发布时间】:2016-11-16 16:02:14
【问题描述】:

我在@Component 中有一些<select class='select'>

我正在关注一个模板,该模板使用名为 Select2 的第三方库为每个选择设置样式。 HTML + jQuery + Select2 代码为:

$( 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 那样安装它。

你有什么建议?

【问题讨论】:

标签: angular angular2-directives


【解决方案1】:

Select2 依赖于 jQuery,所以这不是开箱即用的。

当你使用 jQuery 选择一个元素时,你得到的不是原生元素,而是 jQuery 增强的元素。 您可以选择将 Select2 移植到 Angular 2,或者让它与原生浏览器 API(如 querySelectorAll)一起使用。 (您也可以尝试向作者提出功能请求,但由于 Select2 将自己声明为依赖于 jQuery,我不会打赌实现它。)

【讨论】:

猜你喜欢
  • 2016-06-23
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 2014-07-02
  • 2014-10-26
  • 2016-09-27
  • 2016-08-16
相关资源
最近更新 更多