Formular-Code

👨‍💻️ Was ist Form-Code?

Der Form-Code ermöglicht es Ihnen, beim Starten und Ausführen der Umfrage benutzerdefinierten JavaScript-Code auszuführen.

Ihr benutzerdefinierter Code muss die NGSFormCode Objekt erweitern, um ausgeführt zu werden.

/*
 Beispiel, das zeigt, wie man Befragten 
 Antworten an eine Drittanbieter-REST-API sendet.

 Der Form-Code kann auch verwendet werden, um Drittanbieter- 
 API-Codes in Ihre Formularseite einzufügen, indem die onInit- oder onLoaded-Ereignisse verwendet werden
*/
class CustomFormCode extends NGSFormCode { 
  /* Formular wurde geladen */
  onInit() {}

  /* Ein Security-Item, das Authentifizierung erfordert, wird aufgerufen 
     wenn eine Umfrage Authentifizierung von einem Security-Item verlangt  
  */
  onAuthenticate(securityItem) {}

  /* Ein Security-Item, das Authentifizierung erfordert, wird aufgerufen 
     ein Security-Item wurde erfolgreich authentifiziert. 
     Das Zurückgeben eines Strings aus dieser Methode blockiert den 
     Zugriff auf die Umfrage mit der durch den 
     zurückgegebenen String definierten Nachricht.  
  */
  onAuthenticated(securityItem, securityItemAuthorization) {}

  /* Formular wurde von allen Security-Items autorisiert und geladen  
    mit den Fragen seiner ersten sichtbaren Seite */
  onLoaded() {}

  /* Wird ausgelöst, wenn eine neue Seite geladen wird; ein Nullwert für die Seite 
    zeigt an, dass die Abschluss-/Dankeseite geladen wird 
  */
  onPageLoad(page) {}

  /* Wird ausgelöst, sobald die Sitzungsantworten des Befragten auf dem Server gespeichert wurden.
  action definiert die Aktion, die das Speichern des Fortschritts ausgelöst hat; es kann einer der folgenden Werte sein
  None = 0, Button = 1, PageChange = 2, QuestionChange = 3, Email = 4, Auto = 5 
  */
  onSaveProgress(ngsRespondent, action) {}

  /* Wird ausgelöst, sobald die Antworten des Befragten auf dem Server gespeichert wurden. */
  onSubmit(ngsRespondent) {
    // Angaben zum Befragten
    console.log(ngsRespondent.respondent);

    // Antworten des Befragten
    console.log(ngsRespondent.answers);

    // Data-Attribute-Werte der Security-Items
    console.log(ngsRespondent.dataAttributes);
    
    this.formContext.httpClient.post('http://www.yourrestsite.com/yourapi/saveanswers', 
        ngsRespondent.answers, {}).subscribe();
  }

  /* Wird ausgelöst, sobald die Antworten des Befragten auf dem Server aktualisiert wurden. */
  onUpdate(ngsRespondent) {console.log('update', ngsRespondent);}
}

Das NGSForm Basisklasse stellt folgende Eigenschaften bereit, die Sie in Ihrer abgeleiteten Klasse wiederverwenden können.

class NGSFormCode {
    // Aktuelle Umfrage
    survey;
    // Hilfsklasse für Form-Kontext
    formContext;
    // Aktuelle Antworten des Befragten
    respondentAnswers;
    // Aktueller Befragter
    respondent;
    // Aktueller laufender Sprachcode
    language;
    // Aktuelle Data-Attribute-Werte aus Security-Items
    dataAttributesValues;
 }

FormContext stellt folgende Eigenschaften bereit, die Sie aus Ihrer von NGSFormCode abgeleiteten Klasse über die formContext-Eigenschaft verwenden können.

export class FormContext {
    // Aktuelle Antworten des Befragten
    private respondentAnswers$: Observable<RespondentAnswer[]>,
    // Aktuelle Data-Attribute der Security-Items
    private dataAttributesValues$: Observable<RespondentAnswer[]>,
    // Aktuelle Sprache des Befragten
    private language$: Observable<Language>,
    // Angular HTTP-Client
    private httpClient: HttpClient,
}

Respondent ist die Eigenschaften des Befragten

export interface Respondent {
  id: string;
  surveyId?: string;
  panelistId?: string;
  contextUsername?: string;
  resumeUId?: string;
  resumePageId?: string;
  resumeQuestionId?: string;
  startDate: Date;
  voteDate?: Date;
  archiveDate?: Date;
  iPSource?: string;
  changeUID?: string;
  progressSaveDate?: Date;
  languageCode: string;
  timeToEnd?: number;
  validated: boolean;
  userAgent?: string;
  platform?: string;
  platformOS?: number;
  mobileOS?: boolean;
  longitude?: number;
  latitude?: number;
}

Respondent ist die Eigenschaften des Befragten

export interface Respondent {
  id: string;
  surveyId?: string;
  panelistId?: string;
  contextUsername?: string;
  resumeUId?: string;
  resumePageId?: string;
  resumeQuestionId?: string;
  startDate: Date;
  voteDate?: Date;
  archiveDate?: Date;
  iPSource?: string;
  changeUID?: string;
  progressSaveDate?: Date;
  languageCode: string;
  timeToEnd?: number;
  validated: boolean;
  userAgent?: string;
  platform?: string;
  platformOS?: number;
  mobileOS?: boolean;
  longitude?: number;
  latitude?: number;
}

SecurityItemAuthorization verfolgt alle Eigenschaften, die von einem authentifizierten Security-Item zurückgegeben werden.

export interface SecurityItemAuthorization {
  securityItemId?: string;
  authorizationToken?: string;
  sessionCode?: string;
  sessionRespondent?: NGSRespondent;
  sessionPanelist: NGSPanelist;
  dataAttributesValues?: SecurityItemDataAttributeValue[];
}

Zuletzt aktualisiert

War das hilfreich?