2016-04-19 8 views
0

ich brauche (unterschiedlicher Typen) durch alle Eingänge zu gehen, die ein benutzerdefiniertes Attribut gemeinsam enthalten, wie unten:alle Eingaben mit benutzerdefinierten Attributs in einer Ansicht Erste

<m:Input value="{building>/shortName}" custom:required="true"/> 
... 
<m:Input value="{building>/longName}" custom:required="true"/> 

So kann ich auf die jeweils eine Validierung tun einer von ihnen.

Einige von Ihnen können sich vorstellen, warum ich das mache (sap.m.Input hat keine required Eigenschaft selbst als sap.ui.commons.TextField hat).

Durch pure jQuery, könnte ich es bekommen, aber es ist definitiv meine letzte Option zu versuchen.

Weiß jemand, wie man solche gefilterte Liste der Kontrollen erhält?

Eine andere bessere Lösung für das gleiche Problem ist ebenfalls willkommen.

+0

Ich glaube nicht Validierungen tun wie dies ein solider Weg nach vorn ist .. besserer Nutzung Eingang Validierungen nach Art Bindung, wie durch @aborjinik – Qualiture

+0

vorgeschlagen in der Tat, die Validierung nach Typ verbindlich ist definitiv der Weg zu gehen. Aber stellen Sie sich vor, Sie haben ein paar Pflichtfelder und berühren Sie nicht und klicken Sie einfach auf "Speichern". Es muss sie vor dem Posten validieren, oder? Mein Bedürfnis ist nur dafür, den Bindungstyp nicht zu ersetzen. –

+0

In diesem Fall, siehe diesen Blog, schrieb ich vor einer Weile: http://scn.sap.com/community/developer-center/front-end/blog/2015/11/01/generic-sapui5-form-validator – Qualiture

Antwort

0

Ich denke, Hinzufügen von MinLength-Einschränkung mit String-Typ und Überwachung Validierungsfehler wäre ein besserer Ansatz.

<Input value="{ 
    path : 'building>/shortName', 
    type : 'sap.ui.model.type.String', 
    constraints : { 
     minLength: 1 
    } 
}" /> 

sap.ui.getCore().attachValidationError(function (oEvent) { 
    oEvent.getParameter("element").setValueState("Error"); 
}); 

Sie können auch bei dieser Probe einen Blick https://openui5.hana.ondemand.com/explored.html#/sample/sap.m.sample.InputChecked/preview

+0

das würde erfordern, dass ich eine Bindungsvalidierung aufrufen würde, die vom Framework nicht erlaubt ist. Deshalb versuche ich herauszufinden, wie man alle Elemente durch einen bestimmten Selektor bekommt, damit ich sie durchgehen kann. Ich habe bereits eine Lösung, nämlich view.findElements() aufzurufen und alle durchzugehen, die ihre Typen überprüfen, aber das ist meiner Meinung nach ein schlechter Ansatz. –

+0

@ MarinhoBrandão können Sie mir sagen, wo es steht, dass dies nicht durch das Framework erlaubt ist? Bei der neuen Version der UI5 mit MessageModel ist es nicht einmal notwendig, AttachmentError anzuhängen. Es zeigt automatisch den Fehlerzustand an, wenn Einschränkungen fehlschlagen. – aborjinik

+0

hi @aborjinik, ich habe nirgends explizit gesagt, aber ich habe ein Beispiel erstellt, so dass Sie sehen können, was ich meine: https://github.com/marinho/temporary-openui5-example-1 nur für XXX suchen um zu sehen, was ich meine –

Verwandte Themen