2016-07-22 15 views
1

Ich habe versucht, den Code von jemand anderem zu verstehen, aber ich habe eine schwierige Zeit. Einer der Hauptgründe ist, dass ich weiterhin Funktionen und Eigenschaften sehe, die Teil von geladenen Modulen zu sein scheinen, aber sie scheinen keine Identifikatoren mit ihnen zu haben. Eine davon ist die postCreate-Funktion, die mit dijit/_WidgetBase geladen zu sein scheint. In diesem speziellen Code wird es alsDojo require/define - Wie kann man wissen, welche Funktion und welche Eigenschaft zu welchem ​​Modul gehören?

postCreate: function() { 
    // Some code 
} 

Für mich verwendet würde es mehr Sinn machen, indem man als:

_WidgetBase.postCreate: function() { 
    // Some code 
} 

Nun, wie ich weiß, Postcreate bin soll() gehörte zu dijit/_WidgetBase ohne googeln alle Funktionen im Code?

Dank

+0

Schauen Sie in das erste Argument deklarieren (entweder Objekt oder Array) ist, was erweitert wird. – tik27

+0

@ tik27 Danke. Also funktioniert es nur für das erste Modul, das erweitert wird? Wie würde man die Methoden und Eigenschaften der nachfolgenden Module verwenden? – Naci

Antwort

0

Dies ist eine grundlegende Dojo Wissen Sie gewinnen müssen. Nach einiger Zeit werden Sie sich an die verfügbaren Mixins und die darin enthaltene Methode gewöhnen.
Grundsätzlich ist das Prinzip immer das gleiche:

  • Blick auf dem Modul sind in der declare()
  • Öffnen Sie die einzelnen Dateien zu jedem Modul erklärt
  • Suchen die Methode darin entspricht.
  • Sie Sie finden es nicht in einer dieser Punkte: wiederholen Sie den Vorgang mit der declare Liste aller Module, die Sie gerade geöffnet ... und so weiter ...

Was ich in der Regel tun, um es hinzuzufügen eine console.log oben auf jede Methode meiner Mixins und Klassen. Das Protokoll enthält den Klassenpfad und den Methodennamen, also kann ich beim Debuggen des Codes den "Pfad" sehen und woher er kommt ... (zum Beispiel: console.log('my/new/component/Class::postCreate')).
Aber das wird dir nicht mit der inneren Dojo-Methode helfen. Du musst sie kennen.

0

Hat euch die richtige Dokumentation entlang der Entwicklung erstellt würden Sie diese Fragen nicht stellen müssen;)

Ich glaube nicht, es ist möglich, was Sie, die einzig gangbaren zu erreichen versuchen, Die Option besteht darin, den Code zu durchlaufen und zu dekonstruieren, wie es @ tik27 vorschlägt.

Empfohlene Lese wäre: https://dojotoolkit.org/reference-guide/1.10/dojo/_base/declare.html

+0

Ich versuche einen Code zu verstehen, den ich aus dem Internet heruntergeladen habe :) Ich bin neu bei Dojo/Javascript – Naci