Пользовательский скрипт: изменение AngularJS ng-модели - PullRequest
0 голосов
/ 04 января 2019

Я пишу сценарий, чтобы облегчить мою работу.У меня есть текстовое поле, где я программно вставляю некоторые данные (el.value = "") и хочу опубликовать / отправить их, но я не могу этого сделать, потому что ng-pristine и ng-empty блокируют мой путь.Есть ли какое-то решение для этого?

Мой код для "вставки" данных выглядит так:

function transfer(){
        var fromV = document.getElementById('DataToCopy').value;
        var toV1 = document.getElementById('TextareaToPasteTo1');
        var toV2 = document.getElementById('TextareaToPasteTo2');
        var foc = document.querySelector('TextareaToPasteTo');
        foc.focus();
        toV1.value += "transferring to: " + fromV;
        toV2.value += "transferring to: " + fromV;
};

Ответы [ 3 ]

0 голосов
/ 04 января 2019

почему бы вам не очистить все ваши классы , если это не повлияет на ваш пользовательский интерфейс , в вашем методе transfer?

document.getElementsByName('whatever')[0].classList = [];

это удалит все классы ng-valid, ng-invalid, ng-dirty, ng-pristine, ng-touched, ng-untouched, ng-empty, ng-not-empty, если таковые имеютсявместе с другими классами.

, если в случае, если это влияет на ваш пользовательский интерфейс, вы можете добавить необходимые классы вручную

document.getElementsByName('whatever')[0].classList = ['some-class', 'some-other-class'];
0 голосов
/ 04 января 2019

Ну, мне удалось найти решение.Использование .classList = []; меняет класс на стороне клиента, но мне нужно было передать информацию о том, что в текстовой области действительно есть какой-то текст, на сервер, поэтому я запустил событие, и оно сработало!angular.element(jQuery('#activity-stream-textarea')).triggerHandler('input').

0 голосов
/ 04 января 2019

Я думаю, вам следует использовать метод markAsDirty, например:

control.markAsDirty();

Это также помечает всех прямых предков как грязных для поддержания модели.

https://angular.io/api/forms/AbstractControl#!#markAsDirty-anchor

...