AngularJS ng-сообщения не скрываются после корректного ввода / Minified - в комплекте - PullRequest
0 голосов
/ 21 февраля 2019

У меня странная проблема.Все наши md-input-контейнеры с ng-сообщениями в них застряли после того, как были минимизированы / упакованы и опубликованы.

Теперь это работает первые несколько раз, но если вы укажете на ошибку, вернитесь и введитеправильные данные застряли.

Мы используем этот пакет / минификатор.https://github.com/madskristensen/BundlerMinifier

Мы пробовали AngularJS 1.6.3 и 1.7.7, но получили тот же результат.

Я читал этот пост.https://github.com/angular/material/issues/2781 И мы можем убедиться, что в наше приложение ngMessages внедрено и angular-messages.js загружено на страницу index.html.

В ходе некоторого тестирования я вижу, что объект signInForm.accessKey.$errorизменение (требуется = правда добавлено и удалено).Но элемент ng-message не обновляется с этими изменениями.Это как наблюдатель остановился.Я могу добавить ng-hide="signInForm.accessSecret.$error.required === undefined", чтобы скрыть сообщение, но в этом нет необходимости.

Я также упомяну, что это прекрасно работает, когда выполняется без объединения и без разделения.У меня также есть проблема в github для bundlerMinifer.

Есть мысли?

<form name="signInForm" ng-submit="vm.signIn()" style="width: 100%;">
	<md-input-container class="md-block">
		<label>Email address</label>
		<input name="accessKey" ng-model="vm.accessKey" type="email" required>
		<ng-messages for="signInForm.accessKey.$error" role="alert">
			<ng-message when="required">Email address is required.</ng-message>
		</ng-messages>
	</md-input-container>

	<md-input-container class="md-block">
		<label>Password</label>
		<input name="accessSecret" ng-model="vm.accessSecret" type="password" required>
		<ng-messages for="signInForm.accessSecret.$error" role="alert">
			<ng-message when="required">Password is required.</ng-message>
		</ng-messages>
	</md-input-container>

	<div layout="column" layout-align="start end">
		<md-button class="md-button ws-margin-0" ng-disabled="vm.$ws.isInCallback()" aria-label="Forgot password" ng-click="vm.forgotPassword()" style="text-transform: none !important; position: relative; top: -40px;">Forgot password?</md-button>
	</div>

	<div layout="column" layout-align="center center">
		<md-button type="submit" id="signInButton" class="md-button md-raised" ng-disabled="vm.signInForm.$invalid || vm.$ws.isInCallback()" aria-label="sign in" style="width: 100%; text-transform: none !important;">Sign in</md-button>
	</div>
</form>

1 Ответ

0 голосов
/ 22 февраля 2019

Обнаружена проблема.

После удаления всего из Json-пакета / миниатора и медленного добавления компонентов я обнаружил полифиллер, вызывающий проблему.Полифиллер добавляет функцию к Object.prototype, удаление этой функции решает проблему.

...