2016-10-06 1 views
0

Ich möchte eine Aktion nur dann senden, wenn die Instanz 'addressDetails' existiert (weil die Instanz in ein Unterformular geladen wurde).Wie überprüfe ich, ob in xforms eine Instanz existiert?

Ich habe versucht, das zu verwenden, ‚wenn‘ Attribut xf: Aktion wie folgt aber hat nicht funktioniert:

<xf:action ev:event="save" if="instance('addressDetails') != ''">

ich die Fehlermeldung „Fehler bei der Auswertung von XPath-Ausdruck Instanz bekam (‘ Adressen Details')".

Können wir prüfen, ob eine Instanz existiert?

Antwort

0

Mit XPath 2.0, schreiben Sie einfach:

exists(instance('addressDetails')) 

Oder Sie könnten schreiben:

count(instance('addressDetails')) > 0 
+0

Nope. Weder existiert noch Graf funktioniert. Für exists gab es einen Fehler, der existiert, ist nicht definiert und für count konnte der XPath-Ausdruck nicht ausgewertet werden. – Crusaderpyro

+0

Ab sofort (temporäre Problemumgehung) habe ich eine andere Instanz erstellt, die im Hauptformular (nicht im Unterformular) ist und deren Wert einen booleschen Wert annimmt. Beim Laden der Seite ist es falsch. Sobald das Unterformular geladen ist, überprüfe ich einfach, ob dieser Instanzwert 'wahr' ist. – Crusaderpyro

+0

'count()' sollte auch mit XPath 1.0 funktionieren. Vielleicht ein Fehler, der an XSLTForms gemeldet wird (wenn ich recht habe, dass Sie XSLTForms verwenden). Aber gut zu wissen, dass Sie einen Workaround haben. – ebruchez

Verwandte Themen