Я хотел бы провести модульное тестирование всей базовой логики моего приложения Angular 5.Я понял, что мой * NgIf - основная логика.С этим я люблю извлекать их в вспомогательный класс ShowHide.При этом я не хочу в конечном итоге использовать функции (Переменная, Переменная, Переменная) для выполнения логики, например, проверка на нетронутость, правильность и т. Д.
Я пробовал использовать функцию ниже
public ValidOrPristine(checkControl:AbstractControlDirective):boolean{
console.warn(checkControl);
if(checkControl.pristine || checkControl.valid){
return false;
} else {
return true;
}
}
Затем в моем html я заменяю
<input type="text" #inputItem=[(ngModel)]>
<div [hidden]="inputItem.valid || inputItem.pristine">
на:
<input type="text" #inputItem=[(ngModel)]>
<div [hidden]="showHide.ValidOrPristine(inputItem)">
Мой элемент всегда показывает и, глядя на вывод консоли, функция получает неопределенное.
Хорошо, затем я попробовал:
<input type="text" #inputItem=[(ngModel)]>
<div [hidden]="showHide.ValidOrPristine(this)">
Теперь консоль показывает весь объект в нем.Не слишком полезно.
Я хотел убедиться, что это действительно возможно, как мне кажется, поэтому я пишу:
public Value1OrValue2(value1:boolean,value2:boolean):boolean{
if(value1 || value2){
return false;
} else {
return true;
}
}
интегрируем это в:
<input type="text" #inputItem=[(ngModel)]>
<div [hidden]="showHide.Value1OrValue2(inputItem.valid,inputItem.pristine)">
Работает как чемпион и скрывает элемент.
Я надеялся, что смогу просто передать элемент управления для выполнения логики за сценой доступа к свойствам элемента управления.
Iдаже дошел до того, что посмотрел на NgIf в угловом репозитории Git.
Затем я признал, что мой уровень мастерства был не до того, чтобы отследить его на данный момент.
Iчестно говоря, не думал, что трудно передать то, что NgIf использует для своей логики.Определение правильного типа, я думал, был камнем преткновения.Все это направлено на то, чтобы использовать что-то вроде Жасмин, чтобы пройти всю итерацию логики этих элементов для более сложных элементов.