J'utilise TypeScript avec AngularJS . J'ai un problème avec les modaux qui utilisent une définition typée de la bibliothèque jQuery .L'erreur suivante: "erreur TS2339: La propriété" modal "n'existe pas sur le type" JQuery ". '
Version: bibliothèque jQuery, version 1.10.x/2.0.x Définitions: https://github.com/borisyankov/DefinitelyTyped
Code
$scope.delete = function (id) {
Photo.get({id: id}, function(result) {
$scope.photo = result;
$('#deletePhotoConfirmation').modal('show');// error line
});
};
Je fais référence à jquery.d.ts
dans angular.d.ts
<reference path="../jquery/jquery.d.ts" />
et mon fichier de référence fournisseur global ressemble à ceci:
<reference path='../vendor/types/angular/angular.d.ts' />
<reference path='../vendor/types/angular/angular-mocks.d.ts' />
<reference path='../vendor/types/jasmine/jasmine.d.ts' />
avec les nouvelles versions de TypeScript (> v2 je crois):
npm install -D @types/bootstrap
Votre problème est dû au manque de propriété portant le nom modal
dans le fichier jquery.d.ts .
Si vous êtes sûr que cela fonctionne en JS pur, vous pouvez tromper comme ça
$scope.delete = function (id) {
Photo.get({id: id}, function(result) {
$scope.photo = result;
(<any>$('#deletePhotoConfirmation')).modal('show');
});
};
En outre, vous pouvez rechercher un fichier d.ts
supplémentaire dans lequel cette option a déjà été définie.
Essayez de considérer this bibliothèque qui a déjà eu l'option modal
Bonne chance!
Essayez d'installer les typings pour Bootstrap DefinitelyTyped
typings install --global --save dt~bootstrap
Dans mon cas je devais utiliser
npm install -D @types/bootstrap
et puis j'ai dû importer bootstrap
import * as bootstrap from 'bootstrap';
mais l'étape la plus importante était de supprimer jquery
import * as $ from 'jquery';
sinon cela me donnait cette erreur:
TypeError: $ (...). Modal n'est pas une fonction
ce travail pour moi, j’ajoute en première ligne: declare var $ :any;
this declare $
type est any
,
Il suffit d'ajouter
import * as bootstrap from "bootstrap";
import * as $ from "jquery";
dans votre app.module.ts
Et installez ces paquets
npm install @ types/jquery --save-dev
npm install @ types/bootstrap --save-dev