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?