Я хочу использовать ползунок диапазона в проекте angular, и я попытался использовать один доступный модуль для angular 4.
Он отлично работает во время компиляции, но когда я пытаюсь собрать его для развертывания, он выдает следующую ошибку.
Я проверил возможность использования плагина jQuery непосредственно в проекте angular, и у меня есть варианты для этого только в Angular 2.
Есть ли способ использовать плагины jQuery в Angular 4?
Пожалуйста, дайте мне знать.
Заранее спасибо!
Ответы:
Да, вы можете использовать jquery с Angular 4
Шаги:
1)
index.html
Введите строку ниже в теге.<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
2) В файле компонента ts ниже вы должны объявить var следующим образом
import { Component } from '@angular/core'; declare var jquery:any; declare var $ :any; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { title = 'angular 4 with jquery'; toggleTitle(){ $('.title').slideToggle(); // } }
И используйте этот код для соответствующего html файла следующим образом:
<h1 class="title" style="display:none"> {{title}} </h1> <button (click)="toggleTitle()"> clickhere</button>
Это сработает для вас. Благодарность
источник
Установите jquery с помощью npm
npm install jquery --save
Добавить типизацию
npm install --save-dev @types/jquery
Добавить скрипты в angular-cli.json
"apps": [{ ... "scripts": [ "../node_modules/jquery/dist/jquery.min.js", ], ... }]
Создавайте проект и обслуживайте
Надеюсь это поможет! Наслаждайтесь кодированием
источник
add declare var jquery:any; declare var $ :any;
в свой .ts файл.Cannot find name '$'
declare const $: any;
над декоратором @ ....Установите jQuery с помощью NPM JQuery NPM
npm install jquery
Установите файл объявления jQuery
npm install -D @types/jquery
Импортировать jQuery внутрь .ts
import * as $ from 'jquery';
вызов внутри класса
export class JqueryComponent implements OnInit { constructor() { } ngOnInit() { $(window).click(function () { alert('ok'); }); } }
источник
Вам не нужно объявлять какую-либо переменную jQuery при установке @ types / jquery.
declare var jquery:any; // not required declare var $ :any; // not required
У вас должен быть доступ к jQuery везде.
Следующее должно работать:
jQuery('.title').slideToggle();
источник
Cannot find name 'jQuery'
если не объявляю их в.ts
файле. Так что, если кто-то столкнется с этой проблемой, ему просто нужно их заявить.Вы не должны использовать jQuery в Angular. Хотя это возможно (см. Другие ответы на этот вопрос), это не рекомендуется. Зачем?
Angular хранит собственное представление DOM в своей памяти и не использует селекторы запросов (например, функции
document.getElementById(id)
), такие как jQuery. Вместо этого все DOM-манипуляции выполняются Renderer2 (и Angular-директивами, такими как * ngFor и * ngIf, обращающимися к этому Renderer2 в фоновом / framework-коде). Если вы сами манипулируете DOM с помощью jQuery, вы рано или поздно ...Если вы действительно хотите включить jQuery (для утиной записи какого-нибудь прототипа, который вы на 100% окончательно выбросите), я рекомендую хотя бы включить его в свой package.json
npm install --save jquery
вместо того, чтобы получать его из CDN Google.источник
constructor(private renderer: Renderer2, private el: ElementRef) {}
), вы можете либо фильтр для своих детей или манипулировать элементом непосредственно к нему доступ в nativeElement-Недвижимость:ngOnInit() { this.renderer.addClass(this.el.nativeElement, 'wild'); }
. Вот руководство, как рассказать вам больше: alligator.io/angular/using-renderer2*ngIf
,*ngFor
, изготовленный на заказ (сделанные вами) директивы, труб и для CSSngClass
,[style.background]
и[class.myCustomCssClass]
. Для получения дополнительной помощи: angular.io/tutorial/toh-pt2Попробуй это:
import * as $ from 'jquery/dist/jquery.min.js';
Или добавьте скрипты в angular-cli.json:
"scripts": [ "../node_modules/jquery/dist/jquery.min.js", ]
и в вашем файле .ts:
declare var $: any;
источник
Вы можете обновить свою версию типизации jquery так:
npm install --save @types/jquery@latest
У меня была такая же ошибка, и я был в течение 5 дней, просматривая сеть в поисках решения. Это сработало для меня, и оно должно сработать для вас
источник
Если у вас есть необходимость использовать другие библиотеки в проектах --typescript - а не только в проектах - angle - вы можете найти tds (файл декларации TypeScript), которые удалены и содержат информацию о методах, типах, функциях и т. Д., который может использоваться TypeScript, обычно без необходимости импорта. объявить var - последний ресурс
npm install @types/lib-name --save-dev
источник
Вы можете использовать webpack для его предоставления . Затем он будет автоматически внедрен в DOM.
module.exports = { context: process.cwd(), entry: { something: [ path.join(root, 'src/something.ts') ], vendor: ['jquery'] }, devtool: 'source-map', output: { path: path.join(root, '/dist/js'), sourceMapFilename: "[name].js.map", filename: '[name].js' }, module: { rules: [ {test: /\.ts$/, exclude: /node_modules/, loader: 'ts-loader'} ] }, resolve: { extensions: ['.ts', '.es6', '.js', '.json'] }, plugins: [ new webpack.ProvidePlugin({ $: 'jquery', jQuery: 'jquery' }), ] };
источник
Попробуйте использовать - declare let $: any;
или импортировать * как $ из 'jquery / dist / jquery.min.js'; укажите точный путь к библиотеке
источник
решение машинописного текста:
Шаг 1:
npm install jquery npm install --save-dev @types/jquery
step2: в Angular.json добавьте:
"scripts": [ "node_modules/jquery/dist/jquery.min.js", ]
или в index.html добавьте:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
step3: в * .component.ts, где вы хотите использовать jquery
import * as $ from 'jquery'; // dont need "declare let $"
Затем вы можете использовать jquery так же, как javaScript. Таким образом, VScode поддерживает автоматическое предложение с помощью Typescript.
источник
ngOnInit() { const $ = window["$"]; $('.flexslider').flexslider({ animation: 'slide', start: function (slider) { $('body').removeClass('loading') } }) }
источник