2013-10-25 10 views
11

Ich brauche ein benutzerdefiniertes jquery-Plugin in meiner Anwendung und wie kann ich ein benutzerdefiniertes jquery-Plugin mit typescript erstellen. Ich habe viel gegoogelt und ich habe gerade unter LinksWie können wir ein benutzerdefiniertes jquery-Plugin mit typescript erstellen?

http://typescript.codeplex.com/discussions/398401

Define a custom jQuery UI widget in TypeScript

Die obigen Links verwendet Ebene JavaScript-Code, jedoch JavaScript-Code wird in Typoskript arbeiten, aber das Problem dabei ist, ich kann nicht Verwenden Sie in diesem Plugin Typoskript-Klassen. Gibt es eine Möglichkeit, Typescript-Klassen mit in jquery-Plugin zu verwenden, oder gibt es eine andere Möglichkeit, jquery-Plugin in Typoskript zu erstellen.

Alle Vorschläge sollten berücksichtigt werden.

+0

Typoskript erstellt Javascript. Also, womit kämpfst du? http://learn.jquery.com/plugins/basic-plugin-creation/ – WiredPrairie

+0

@ WiredPrairie, ich weiß, aber ich habe Typoskript-Widget, das ich in Plugin konvertieren muss. Gibt es eine Möglichkeit, das benutzerdefinierte Typoskript in ein benutzerdefiniertes Typoskript zu ändern? – karthik

+0

Was ist ein "benutzerdefiniertes Widget"? Sie müssen jQuery Plugin Authoring-Techniken verwenden. – WiredPrairie

Antwort

7

Es gibt kaum Unterschiede zwischen der Verwendung von JavaScript und Typescript beim Erstellen eines Plugins. Wahrscheinlich möchten Sie zuerst die jQuery-Definition für TypeScript von here abrufen und sie Ihrem Projekt hinzufügen (oder je nach Entwicklungsumgebung in die Befehlszeile usw. aufnehmen).

Dann schreiben Sie einfach das Plugin und verwenden Sie Klassen und vorhandenen Code, den Sie möchten. Das folgende Beispiel zeigt nur, dass es sich kaum von den ursprünglichen JavaScript-Plugin-Techniken unterscheidet.

(function($) { 
    $.fn.myPlugin = function() { 
     // do something 
     return this; 
    }; 

    $.fn.myEachPlugin = function(options) { 
     var settings: any = $.extend({ 
      color: "#ffff00" 
     }, options); 

     return this.each(function() { 
      // do something ... 
     }); 
    }; 

})(jQuery); 
+0

Ihre Antwort verwendet die "fette Pfeil" anonyme Funktionsnotation vier Mal. In zwei Fällen muss das 'function() {' Konstrukt im alten Stil verwendet werden, da TypeScript 'this' handhabt: siehe [TypeScript Handbook] (http://www.typescriptlang.org/Handbook#functions) -lambdas-and-using-39this39). Wenn Sie die Fettpfeilsyntax verwenden, zeigt 'this' grundsätzlich auf 'was auch immer' war ** außerhalb der anonymen Funktion **. In diesem Fall müssen Sie die traditionelle, normale Art und Weise, so dass Sie benötigen: '$ .fn.myPlugin = function() {' und '$ .fn.myEachPlugin = function (Optionen) {' – MarkusT

Verwandte Themen