2012-03-30 3 views
3

I YUI3 die Auto-complete Plugin verwenden. Y.Plugin.Autocomplete.Erweiterung YUI3 Plugins und Klassen

Jetzt möchte ich dieses Plugin erweitern und einige sehr spezifische Plugins erstellen. Wie Y.MyModule.TagAutocomplete, Y.MyModule.EmailAutocomplete und so weiter.

Meine einfache Frage ist, wenn ich initializer Methode in meine Unterklasse schreibe muss ich ausdrücklich Oberklassenkonstruktors anrufen oder implizit geschieht? Wenn ich es nennen muss, was ist die Syntax?

Antwort

1

Ich habe nie versucht Plugins zu erweitern, aber ich habe von Y.Base zu erweitern und es funktioniert hier dokumentiert: http://yuilibrary.com/yui/docs/base/

Im Detail:

  1. Sie eine „Konstruktorfunktion“ erstellen. Hier sollten Sie Oberklassenkonstruktors nennen:

    function MyClass(config) { 
        // Invoke Base constructor, passing through arguments 
        MyClass.superclass.constructor.apply(this, arguments); 
    } 
    
  2. Als Nächstes verwenden Y.extend Methode, um Ihre eigene Klasse von Y.Base erweitert zu machen (oder Y.Plugin.Autocomplete in Ihrem Fall)

    Y.extend(MyClass, Y.Base, { 
        // Prototype methods for your new class 
    }); 
    
  3. Y.Base hat eine spezielle Methode namens „Initialisierungs“ - diese Methode für jede Klasse in hierarcy ausgeführt, wenn Sie ein neues Objekt erstellen und Sie müssen nicht manuell Eltern initizlizer nennen. Ich denke Y.Plugin.Autocomplete hat seinen eigenen "Initialisierer". So gehen Sie wie folgt jus:

    Y.extend(MyClass, Y.Plugin.Autocomplete, { 
        initializer: function(config) { 
         alert("This initializer called after Y.Plugin.Autocomplete's initializer"); 
        } 
    }); 
    

letzten Kommentar von meiner Seite: Ich habe nie Y.Plugin.Autocomplete zu verlängern versucht, meint da sein etwas unter der Haube in der automatischen Vervollständigung Realisierung ist. Versuch es!

Verwandte Themen