2017-02-05 14 views
1

Я пытаюсь следовать учебному пособию по аурелии (валидации). Однако я знаю, что он нуждается в обновлении. Несмотря на это, я думал, что с документами я смогу выяснить, как заставить его работать, чего не происходит.Как использовать текущую версию проверки aurelia?

Исходный код выглядит следующим образом:

import {inject} from "aurelia-framework"; 
import {Validation} from "aurelia-validation"; 

@inject(Validation) 
export class Edit { 

    constructor(validation) { 
     this.validation = validation.on(this) 
      .ensure("movie.title") 
       .isNotEmpty() 
      .ensure("movie.releaseYear") 
       .isNumber(); 
    } 
} 

Это не похоже на работу больше. Я получаю ошибку при вводе при попытке получить валидацию в конструктор.

Я пошел в документы и, похоже, не существует Валидация символ больше.

Я попытался инъекционного ValidationRules и валидатора в моем классе, но ни один поддержку обеспечить или на методов.

Я попытался следовать потоку в документах, где «on» будет последним вызовом метода. Но так как даже не работает, я застрял.

Цените любую помощь.

+0

В течение последних двух лет Аурелия пережила множество изменений, поэтому существует немало учебников, которые не работают. Но официальная документация DocHub для Aurelia Validation должна работать на вас. http://aurelia.io/hub.html#/doc/article/aurelia/validation/latest/validation-basics – LStarky

+0

Кстати, вы должны принять ответ @ lstarky .. b/c он прав, а мой не прав: -) –

ответ

6

В течение последних двух лет Аурелия пережила множество изменений, поэтому существует немало учебников, которые не работают. Но official documentation на DocHub для проверки Aurelia должен работать на вас.

Важное примечание:

Aurelia Validation, кажется, есть ограничение, что это не очень хорошо работает с суб-свойства объекта, как вы пытаетесь сделать (this.movie.title). Вместо этого, вы должны сделать что-то вроде этого:

import {ValidationRules} from "aurelia-validation"; 
export class Edit { 
    constructor() { 
    ValidationRules 
     .ensure("title").required() 
     .ensure("releaseYear").required() 
     .on(this.movie); 
    } 
} 

Вы можете изменить .required() к любому из действующих правил. Однако, я не думаю, что .isNotEmpty() или .isNumber() находятся в списке действующих правил. См. Документацию.

+2

Хорошо, теперь, когда мне удалось удалить мой вопрос, отметив мой собственный ответ, пожалуйста, примите этот ответ правильно! –

+0

Мне пришлось изменить 'isnotEmpty()' на 'required()' (достаточно близко) и 'isNumber()' to 'matches (regex)'. –