Freigeben über


Power Apps-component framework FAQs

Dieser Artikel liefert Informationen zu häufig gestellten Fragen zum Power Apps-component framework.

Wo finde ich einige gute Beispiele für Code-Komponenten?

Wir haben eine Reihe von grundlegenden Komponenten veröffentlicht, die die Verwendung verschiedener Komponentenfunktionen und APIs demonstrieren. Viele gute Beispiele aus der Community sind auf den Power Apps Community-Foren verfügbar.

Wie kann man reichhaltige Datentypen in Code-Komponenten wie z.B. Sammlungen verwenden?

Derzeit wird diese Funktion nicht unterstützt. Es gibt jedoch eine JSON-Funktion in Canvas-Apps, die es App-Machern erlaubt, ihre Daten zu stringentieren.

  1. Übergeben Sie die Sammlung an die JSON-Funktion.
  2. Übergeben Sie die String-Repräsentation der Sammlungsdaten, die von der JSON-Funktion zurückgegeben wird, an eine der String-Eigenschaften der Komponente.
  3. Verwenden Sie JSON.parse im Komponentencode, um ihn wieder in ein JavaScript-Objekt zu konvertieren.

Kann ich andere Komponenten von einer anderen Komponente aus aufrufen?

Das wird aktuell nicht unterstützt.

Kann ich Font-Ressourcen bündeln?

Derzeit werden Schriftartenressourcen (Dateien mit der Dateierweiterung .ttf) vom Framework nicht unterstützt.

Kann ich die img-Ressourceneigenschaft in Canvas Apps verwenden?

Derzeit werden img Ressourcen in Canvas-Apps nicht unterstützt.

TabIndex-Unterstützung für Komponenten in Canvas-Apps

Derzeit unterstützen Code-Komponenten die tabindex-Eigenschaft in Canvas-Apps nicht. Bei modellgetriebenen Apps wird die Registerkartenzuweisung automatisch mit tabIndex = 0 zugewiesen, so werden Elemente in der Reihenfolge navigiert, in der sie angezeigt werden.

Kann ich Befehlsleiste, Suche zu Unterrastern hinzufügen?

Um Befehlsleiste, Suche zu einem Unterraster für modellbasierte Apps hinzuzufügen, müssen Sie die cds-data-set-options festlegen.

Kann ich auf den Formularkontext zugreifen, wie ich es in Ereignishandlern für modellgesteuerte Apps kann?

Der direkte Zugriff auf den Formularkontext in einem Steuerelement wird nicht unterstützt. Von Codekomponenten wird erwartet, dass sie in verschiedenen Produkten wie modellgesteuerten Apps, Canvas-Apps und Dashboards funktionieren. Sie dürfen daher nicht vom Formularkontext abhängig sein. Eine Problemumgehung besteht darin, die Codekomponente an eine Spalte zu binden und einen Ereignishandler OnChange zu dieser Spalte hinzuzufügen. Die Codekomponente kann den Spaltenwert aktualisieren und der Ereignishandler OnChange kann auf den Formularkontext zugreifen. Eine nicht an eine Tabelle gebundene Spalte könnte verwendet werden oder eine an eine Tabelle gebundene Spalte, für die submitMode auf never festgelegt ist. Wir werden in Zukunft Unterstützung für benutzerdefinierte Ereignisse hinzufügen, die zum Kommunizieren von Änderungen außerhalb eines Steuerelements verwendet werden können, ohne eine Spaltenkonfiguration hinzuzufügen.

Eigenschaften können der Codekomponente nach dem Import nicht hinzugefügt bzw. danach nicht mehr daraus entfernt werden

Die optionalen Eigenschaften können in der neueren Komponentenversion hinzugefügt werden, vorhandene Eigenschaften können jedoch nicht entfernt werden. Als Problemumgehung können Sie die Eigenschaften optional einstellen und ausblenden. Darüber hinaus können Codekomponenten in der neueren Version keine erforderlichen Eigenschaften hinzufügen, und Sie müssen eine Codekomponente mit einem neuen Namen erstellen und im Zielsystem neu konfigurieren.

Kann ich von der Komponente aus auf das Fensterobjekt zugreifen?

Derzeit wird der Zugriff auf das Fensterobjekt über die Steuerung nicht unterstützt.

Wie kann ich auf die Datensatz-ID oder den Tabellennamen zugreifen?

Entwickler, die Power Apps Komponenten erstellen, könnten erwarten, dass der Kontext Informationen über den Datenkontext enthält, in dem das Steuerelement existiert. Clientseitige Skripte bieten Zugriff darauf über das formContext.data.entity Objekt, das Methoden wie getId und getEntityName bereitstellt, mit denen Entwickler von Clientseitigen Skripten auf die Datensatz-ID und den Tabellentyp zugreifen können.

Power Apps-Komponenten bieten dies nicht, da sie auf mehreren Oberflächen unterstützt werden müssen, auf denen diese Informationen möglicherweise nicht verfügbar sind.

Um Zugriff auf diese Eigenschaften in einem Formular zu haben, in dem sie verfügbar sind, müssen sie bei der Konfiguration des Steuerelements als Optionen hinzugefügt werden.

Dazu müssen Sie Eigenschaftselemente in der ControlManifest.Input.xml hinzufügen. Der Wert des Attributs of-type muss SingleLine.Text und der Wert von usage muss input sein.

Fügen Sie zum Beispiel die folgenden Eigenschaften in das Steuerelement ein:

<property name="entityId"
  display-name-key="Entity Id"
  description-key="The id of the current record."
  of-type="SingleLine.Text"
  usage="input"
  required="true" />
<property name="entityName"
  display-name-key="Entity Name"
  description-key="The logical name of the type of the current record."
  of-type="SingleLine.Text"
  usage="input"
  required="true" />

Wenn diese Eigenschaften definiert sind, können Sie mit context.parameters.entityId bzw. context.parameters.entityName auf die Werte zugreifen.

Wenn Sie das Steuerelement im Formular für eine modellbasierte App registrieren, müssen Sie die Eigenschaft Entity Id an die Spalte binden, die den eindeutigen Bezeichner für den Datensatz darstellt. In diesem Fall ist das die accountid für die Kontotabelle.

Konfigurieren Sie die Eigenschaft Entity Id auf das Feld accountid

Für die Eigenschaft Entitätsname können Sie den Wert an das Feld entitylogicalname oder an einen statischen Wert binden, z. B. account.

Konfigurieren Sie die Eigenschaft Name der Entität mit dem Feld accountid