2015-09-23 17 views
8

Ich verwende Typescript mit AngularJS. Ich habe ein Problem mit modals mit getippter Definition der jQuery-Bibliothek. Ich bekomme den folgenden Fehler: 'Fehler TS2339: Eigenschaft' Modal 'existiert nicht für den Typ' JQuery '.'Fehler TS2339: Die Eigenschaft 'modal' existiert nicht beim Typ 'JQuery'

Version: jQuery-Bibliothek, Version 1.10.x/2.0.x Definitionen: https://github.com/borisyankov/DefinitelyTyped

-Code

$scope.delete = function (id) { 
    Photo.get({id: id}, function(result) { 
    $scope.photo = result; 
    $('#deletePhotoConfirmation').modal('show');// error line 
    }); 
}; 

ich jquery.d.ts Referenzierung bin in angular.d.ts

<reference path="../jquery/jquery.d.ts" /> 

und meine Die Referenzdatei des globalen Anbieters sieht folgendermaßen aus:

+2

können Sie Ihren Code zeigen? –

+0

$ scope.delete = Funktion (ID) { Photo.get ({ID: ID}, Funktion (Ergebnis) { $ scope.photo = Ergebnis; $ ('# deletePhotoConfirmation'). Modal ('show') ; // Fehlerzeile }); }; – TomekB

+0

Ich verweise auf 'jquery.d.ts' in 'angular.d.ts' Datei: /// und meine globale Herstellerreferenzdatei sieht wie folgt aus: /// /// /// TomekB

Antwort

9

Ihr Problem wird durch den Mangel an Eigenschaft mit dem Namen modal in der Datei jquery.d.ts verursacht.

Wenn Sie sicher, dass diese Arbeit in reinen JS Sie mit ihm wie dieses

$scope.delete = function (id) { 
    Photo.get({id: id}, function(result) { 
    $scope.photo = result; 
    (<any>$('#deletePhotoConfirmation')).modal('show'); 
    }); 
}; 

Auch Trick können, können Sie zusätzliche d.ts Datei finden, wo diese Option wurde bereits definiert.

Versuchen this Bibliothek zu betrachten, die modal Option

Good Luck bereits gehabt hat!

+1

Ich habe 'jquery.simplemodal.d.ts' überprüft. Es funktioniert gut, danke! – TomekB

+1

mark Frage als die richtige Antwort, wenn es Ihnen hilft –

22

mit neueren Versionen von Typoskript Installation (> v2 ich glaube):

npm install -D @types/bootstrap 
+0

Dies funktionierte für mich in einem Projekt mit jquery Typen auch installiert - es hinzugefügt, um die jQuery-Schnittstelle so dass $ (modal-Selektor) .modal ('show') 'etc kompiliert Fine – hughjdavey

+6

Ich musste auch 'Import * als Bootstrap von" Bootstrap ";' zu meinem 'app.module.ts' hinzufügen, sonst IntelliJ hörte auf sich zu beschweren, aber es würde immer noch nicht auf der Kommandozeile mit dem gleichen Fehler kompilieren. Es spielt keine Rolle, wie Sie es nennen (es muss kein Bootstrap sein). Für absolute Klarheit habe ich auch 'Import * als $ von" jquery ";' in der gleichen Datei, die ich '$ (...)' in meinen Komponenten verwenden kann. – hughjdavey

+1

danke @hughjdavey !!! für die Einbeziehung dieser spezifischen Import-Aussagen ... Ich kann nicht glauben, wie unklar ist das für wie häufig eine Notwendigkeit muss es sein?!? – Beej

Verwandte Themen