2016-03-24 3 views
0

Ich dachte, ich hätte dies genagelt, scheint nicht. Ich erhalte den folgenden Fehler:aurelia .passes (Funktion ('', '', '', ''))

Unhandled promise rejection Error: Unexpected behavior: a validation-rules-collection should always fulfil

     .ensure('baseContent.ValidFromDate', (config) => { config.computedFrom(['baseContent.ValidFromDate', 'baseContent.ValidFromTime', 'baseContent.ValidToDate', 'baseContent.ValidToTime']) }) 
        .if(() => { 
         return this.baseContent.ValidFromDate !== null && this.baseContent.ValidFromTime !== null && this.baseContent.ValidToDate !== null && this.baseContent.ValidToTime !== null}) 
         .passes(() => { return this.datetimeformat.format(this.baseContent.ValidFromDate, this.baseContent.ValidFromTime) < this.datetimeformat.format(this.baseContent.ValidToDate, this.baseContent.ValidToTime) }) 
        .endIf().isNotEmpty() 

Das erste Mal in den Renditen ein Bool. Wenn jedoch false dies nicht anzeigt. Danach erhalte ich den obigen Fehler.

Auch ich hatte gehofft, dass ich einen benutzerdefinierten Fehler hinzufügen könnte? Und dass es auf allen Boxen erscheinen würde?

Oder so brauche ich so etwas wie

tun sicherzustellen ([.., .., .., ..]

Antwort

0

Nach-Menge Untersuchung stellte ich fest, das Problem aus meiner Formatierungsklasse war Es hat das Datum/die Uhrzeit (mit moment.js) nicht korrekt erstellt (nachdem der Benutzer aus dem Kalender ausgewählt hat), dh es hat ein ungültiges Datum zurückgegeben, das nicht verglichen werden kann: - |

Dies funktioniert :

this.validator = this.validation.on(this) 
        .ensure('baseContent.ValidFromDate', (config) => { config.computedFrom(['baseContent.ValidFromDate', 'baseContent.ValidFromTime', 'baseContent.ValidToDate', 'baseContent.ValidToTime']) }) 
         .if(() => { 
          return this.baseContent.ValidFromDate !== null && this.baseContent.ValidFromTime !== null && this.baseContent.ValidToDate !== null && this.baseContent.ValidToTime !== null }) 
          .passes(() => { return this.datetimeformat.format(this.baseContent.ValidFromDate, this.baseContent.ValidFromTime) < this.datetimeformat.format(this.baseContent.ValidToDate, this.baseContent.ValidToTime) }) 
          .withMessage('< Valid To') 
         .endIf()