gpt4 book ai didi

jquery - Angular 4 的语义 UI 下拉菜单

转载 作者:行者123 更新时间:2023-12-01 04:38:03 25 4
gpt4 key购买 nike

我目前正在尝试实现一个 Angular 指令来管理语义 UI 下拉列表。首先,我通过 npm 使用 Angular (4.3.3)、jQuery (3.2.1) 和 Semantic UI (2.2.13)。

为了集成它们,我重新配置了 angular-cli.json 以导入这些库:

"scripts": [
"../node_modules/jquery/dist/jquery.min.js",
"../node_modules/semantic-ui/dist/semantic.min.js"
]

声明语义 UI 指令:

import {Directive, ElementRef, AfterViewInit} from "@angular/core";
import * as jQuery from "jquery";

@Directive({
selector: "[sm-dropdown]"
})

export class SemanticDropdownDirective implements AfterViewInit {

constructor(private dropdown: ElementRef) {}

ngAfterViewInit(): void {
jQuery(this.dropdown.nativeElement).dropdown();
}
}

并尝试一下:

<div class="ui selection dropdown" sm-dropdown>
<i class="dropdown icon"></i>
<div class="menu">
<div
class="item"
*ngFor="let item of [10, 20, 30, 50, 100]"
[attr.data-value]="item"
>
{{ item }}
</div>
</div>
</div>

问题是它总是以:

ERROR TypeError: WEBPACK_IMPORTED_MODULE_1_jquery(...).dropdown is not a function

我注意到在浏览器控制台中创建一个下拉菜单(抛出错误后)可以工作:

$('.dropdown').dropdown()

我已经用谷歌搜索它并尝试了很多替代方案,但没有成功......

有什么想法吗?

最佳答案

试试这个:

import {Directive, ElementRef, AfterViewInit} from "@angular/core";
import * as $ from 'jquery';

declare var $: any;

@Directive({
selector: "[sm-dropdown]"
})

export class SemanticDropdownDirective implements AfterViewInit {

constructor(private dropdown: ElementRef) {}

ngAfterViewInit(): void {
$(this.dropdown.nativeElement).dropdown();
}
}

Working Plunkar Link

关于jquery - Angular 4 的语义 UI 下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45658176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com