Durchsuchbare Dokumentation aufrufen

Zurück zur Dokumentationsübersicht

JavaScript-Bibliothek agorum.composite/change-listener

Diese Bibliothek bietet einen vereinfachten Zugriff auf Funktionen, um über Änderungen von Attributen eines Objekts in Kenntnis gesetzt zu werden.

Verwendung


let ChangeListener = require('/agorum/roi/customers/agorum.composite/js/lib/change-listener');
let changeListener = ChangeListener(widget);

Für die Verwendung der Bibliothek sind zwei Schritte notwendig:

  1. Laden Sie die Bibliothek durch den Aufruf von require.
  2. Rufen Sie die geladene Bibliothek als Funktion auf.
  3. Übergeben Sie der Funktion ein Widget, auf dem Sie die Attribute sowie die Objekte registrieren.

    Hinweis: Sie können für verschiedene Widgets verschiedene Objekte und Attribute registrieren.

Funktionen


changed

Ermöglicht es, sich auf bestimmte Attribute zu registrieren.


Aufruf

changeListener.changed(attributes, callback);

Über den Parameter callback wird eine Funktion angegeben, die aufgerufen werden soll oder aufgerufen wird, wenn sich eines der registrierten Attribute geändert hat. In der angegebenen Funktion kann dann die Logik ausgeführt werden, die für ein geändertes Attribut notwendig ist. Der Funktion, angegeben unter dem Parameter callback, werden die Parameter objektId und attribute durch diese Bibliothek zur Verfügung gestellt.


Parameter

Parameter Beschreibung
objektId Definiert das Objekt, auf das sich das Attribut geändert hat.

Diese Angabe ist relevant, wenn auf mehr als einem Objekt auf Änderungen an den Attributen gehört wird.
attribute Definiert das Attribut, das sich auf dem Objekt, angegeben über die ObjektId, geändert hat.

Diese Information ist relevant, wenn auf mehrere oder alle Attribute eines Objekts gehört wird.

Die Attribute, die über diese Funktion registriert werden, sind unabhängig der überwachten Objekte. Es wird über diese Funktion angegeben, auf welche Attribute gehört werden soll, jedoch nicht auf welche Objekte. Die somit registrierten Attribute werden für alle Objekte überwacht, die über die Funktion listen zur Überwachung hinzugefügt wurden.


Beispiel

let changeListener = require('/agorum/roi/customers/agorum.composite/js/lib/change-listener');

// Listen for all attribute changes
changeListener.changed('', (objectId, attribute) => {
  console.log('Attribute ' + attribute + ' has changed');
});

// Listen for attribute "name"
changeListener.changed('name', (objectId, attribute) => {
  console.log('Attribute name has changed');
});

// Listen for attributes "fileSize" and "lastModifyDate"
changeListener.changed(['fileSize', 'lastModifyDate'], (objectId, attribute) => {
  console.log('Attribute ' + attribute + ' has changed');
});

Neben den Attributen kann über die Funktion changed auch auf Änderungen an den Relationen von Objekten gehört werden. Registrierte Funktionen werden darüber in Kenntnis gesetzt, wenn sich für ein registriertes Objekt eine Relation ergibt oder eine bestehende Relation aufgelöst wird.

Sollte sich eine neue Relation ergeben, dann wird entweder die Änderung right-added-... oder die Änderung left-added-... gefeuert.

Sollte sich eine bestehende Relation auflösen, wird entweder die Änderung right-removed-... oder left-removed-... gefeuert.


Beispiel

let changeListener = require('/agorum/roi/customers/agorum.composite/js/lib/change-listener');

// Listen for left added folder path relations
changeListener.changed('left-added-folderpathrelation', (objectId, attribute) => {
  console.log('The registered object: ' + objectId + ' was added to a folder');
});

// Listen for right removed folder path relations
changeListener.changed('right-removed-folderpathrelation', (objectId, attribute) => {
  console.log('An object was removed from the registered object: ' + objectId);
});

listen

Erwartet die Ids der Objekte, die auf Änderung der Attribute überwacht werden sollen.


Aufruf

changeListener.listen(ids);

Wird die Funktion listen ein zweites Mal auf einem Widget aufgerufen, wird die Registrierung aller auf dem Widget registrierten Ids aufgehoben und mit den neu definierten Ids ersetzt.

Hinweis: Die Funktion erwartet die UUID eines Objekts. Mit den ausschließlich numerischen IDs von Objekten kann das Modul und die damit einhergehende Funktion nicht verwendet werden.


Beispiel

let changeListener = require('/agorum/roi/customers/agorum.composite/js/lib/change-listener');

// Listen for attribute name
changeListener.changed('name', (objectId, attribute) => {
  console.log('Attribute: ' + attribute + ' of object: ' + objectId + ' has changed');
});

// Register object to listen for the attribute change
changeListener.listen('abc-def-1111-22222');

cancel

Hebt die Registrierungen der Objekte auf, die mit listen erstellt wurden.


Aufruf

changeListener.cancel();

Wird ein Widget geschlossen oder zerstört, werden zugleich alle Registrierungen der Objekte ebenfalls aufgelöst.