Sergey
нг1 он весь на директивах, можно конечно плыть против течения, но толку
Sergey
реально валидация в 1 ангуляре желает быть лучшим намного
Ну единственно что она прибита гвоздями к ngmodel, а так... ну хз
AluV (დანიილ)
Вот это уже на что то человеческое похоже, правда не ангуляр: https://github.com/monterail/vuelidate
Rem1te
это безногое и безрукое оружие без патронов. Чекай как в Laravel валидация сделана
щас бы отета бек енд и фронт енд сравнивать, Вы мне ещё раскажите как в бек енде состояние хранится и данные сторятся, а на фронте чота не так
AluV (დანიილ)
Я ниже привел пример для фронта, нет никакой разницы. PHP интерпретируется и код в нем лимитирован по жизненому циклу и Js тоже. Я могу так же сравнивать Java и TypeScript. У них свои задачи, архитектуру можно строить аналогичным способом.
AluV (დანიილ)
Модели, сервисы, MVC, все тоже самое. Если что то реализовано по разному это конкретная реализация фреймворка. В JavaSpring я не нашел нормальных человеческих миграций, но это не значит что их нельзя сделать на Java или они будут выглядить по другому чем на других языках. мы все равно используем абстракции языка. Я и говорил про абстракцию.
Rem1te
у ПХП - жизненный цикл вызвал - отработал - умер У джс - запустился - реагирую на пользователя. Конечно в таком случае контролировать потоки данных становится сложнее поскольку поведение пользователя зачастую не предсказуемое Далее, Вы можете описать сервис для валидации данных, который Вам вернет обьект ошибок с ключами и раставить их везде, в этом нет ничего сложного, повторюсь ещё раз, если вы что-то сделали и у вас оно не едет, но едет у миллионов других разработчиков, то дело не в технологии
AluV (დანიილ)
»>У джс - запустился - реагирую на пользователя. Окей, Js => Как работают контекст. Как он работает в браузере.
Rem1te
Вы начали сравнивать два фреймворка которые заточены под совершенно разное. Один под фронт второй под бек, у них совершенно разная логика поведения, структура, и их функции
AluV (დანიილ)
Логика поведения может быть разная, API для разработчика одинаковый
Rem1te
Вот если бы вы взяли реакт и сказали - Вот в реакте лучше потому и потому, спор был бы аргументирован
Sergey
@Alu_V вы может изначальную задачу расскажете? Может у нас тоже пригорит
Rem1te
Логика поведения может быть разная, API для разработчика одинаковый
как бы вам объяснить... Вот есть профессия дворы подметать А есть профессия дома строить Вот вроде и тот человек и тот работает, а делает совершенно разное
Rem1te
ну да, там не такое, а в ангуляре 2+ там вообще с этим все хорошо :)
Rem1te
Увы и ах :(
AluV (დანიილ)
Я не могу про валидацию ReactJs сказать ничего хорошего, там просто все проще,поэтому делашь как хочешь
Rem1te
Ну не знаю, как по мне реакт + валидация + формы = боль и страдания
AluV (დანიილ)
Ну там есть разные расширения типа react-validation и другие очень похожие. Этим вполне можно пользоваться
Ramazan
А если вам скажут нет, что будет?)
тогда нужно будет думать как сделать по другому
Sergey
Ну просто я не понимаю что именно вас в том коде беспокоит
Ramazan
ну у меня сервис зависит от модуля а модуль от сервиса
Ramazan
и ругается на инджект
Sergey
Зачем он такой нужен я тоже не особо понимаю, но я не работал со встроенным роутером
Ramazan
я не пойму что ему не нравиться
Sergey
ну а как с partial view ангуляре работать?
https://jakeydocs.readthedocs.io/en/latest/mvc/views/partial.html вот эти partial view? Вы хотите аналог?
Ramazan
почти
Ramazan
у меня тоже .net mvc
Ramazan
только тут в примере статические, а уменя динамические
Sergey
Ну я с мвц не работал, идею понимаю только примерно
Sergey
В доке это просто вставка произвольного кода в произвольное место
Sergey
В нг1 строительные блоки - директивы и компоненты
Sergey
Я так и не понял что вы пытаетесь достичь)
AluV (დანიილ)
Ну я с мвц не работал, идею понимаю только примерно
странно, потому что в angular 1 MVC Да и в большинстве всех фреймворков, ты юзаешь это неосознанно
Sergey
C asp mvc
Sergey
У меня asp core webapi
AluV (დანიილ)
С этим не работал, обошел осознанно стороной
Sergey
И клиент на нг1, древний как я не знаю что
AluV (დანიილ)
Я на ангуляре могу написать свой валидатор для кастомной директивы ? require: 'selectorAll', Что то подобное, потому что сейчас директива валидации вобще не линкуется
Sergey
У директивы есть ng-model?
Igor
всем привет) как закрыть модальное окно $mdDialog после нажатия на конопку которая выполняет переход по ng-href . сейчас прикрутил к этой кнопке ng-click="cancel()" но она закрывает окно при любом раскладе, даже если кнопка ng-disabled = false. а надо чтоб пока она не ng-disabled = true то событие Cancel не работало
Igor
код кнопки <md-button md-no-ink class="md-raised md-primary" ng-click="vm.cancel()" ng-href={{vm.SendEmail()}} ng-disabled="editEmailForm.$invalid" id="sendButton" form="editEmailForm-form">send</md-button>
Sergey
А зачем так делать?
Sergey
mddialog возвращает промис, оттуда и переходите по then
Igor
откуда он его возвращает?
Igor
и в какой момент
Sergey
От show
Igor
про промисы знаю что это ответ сервера типа асинхронной таски. а где тут он принимается или возвращается? есть туториал?
Igor
или хотя бы направление куда копать
Sergey
Rem1te
про промисы знаю что это ответ сервера типа асинхронной таски. а где тут он принимается или возвращается? есть туториал?
промис это не ответ от сервера, это буквально обещание что после определенного действия что-то произойдет, не синхронно а в принципе, когда не будь
AluV (დანიილ)
У директивы есть ng-model?
Нету, ответ: невозможно. Вот он и ангулярJs, сейчас попробую просто через классы сделать свой div с ошибкой.
pa[aad
Вообще можно валмдировать только модель и нн привязываться к ng model и стандартной валидации
pa[aad
class-validation на ts через декораторы
Sergey
Там нифига не произвольные данные валидируют
Igor
mddialog возвращает промис, оттуда и переходите по then
есть у меня директива в которой я и вызываю диалог $scope.showSendDialog = function () { $mdDialog.show({ clickOutsideToClose: false, templateUrl: "app/directives/sendEmail/sendEmailTemplate.html", controller: "sendEmailController", controllerAs: "vm", locals: { model: _.cloneDeep($scope.model) } }).then(function (result) { $scope.model = result; }); и как тут сказать чтоб после срабатывания события ng-disabled="editEmailForm.$valid" работала ng-click="vm.cancel()" или проще говоря, как сделать чтоб окно закрывалось после нажатия на активную кнопку
Sergey
В контроллер диалога инжектится инстанс $mdDialog
Sergey
Вызывайте $mdDialog.hide(okResult) чтобы промис резолвнулся с резульатом
Sergey
Или $mdDialog.cancel() чтобы промис реджектнулся
Igor
куда бы я не поставил это $mdDialog.cancel(); у меня везде он срабатывает и окно только открывается и сразу закрывается
Sergey
А почему же он срабатывает?
Sergey
Может быть его кто-то вызывает?
Igor
это наводящий вопрос? потому что как я посмотрел по деьагу, что браузер по всему коду раз несколько пробегает, вот он его и вызывает
Sergey
Ну он сам не вызывается, у меня не вызывается
Sergey
Каким образом он у вас сам собой вызывается, почему?
Igor
если кинуть его прям в тело контроллера, то вызывается, если кинуть его в функцию SendEmail то вызывается потому что у меня она привязана к кнопке
Igor
последнее вообще звучит как не аргумент
Sergey
Вы что-то не то делаете
Sergey
Паттерн такой - вызывающий код показывает модал, получает из show промис
Sergey
В then делает sendEmail
Sergey
Или что угодно, что нужно сделать после показа модалки
Sergey
Модалка у себя просто дёргает hide и cancel по обработчикам кнопок
Sergey
Всё
Igor
я вызываю эту модалку в директиве, и передаю все в контроллер этой модалки, из контроллера снова вызвать show() ?
Igor
есть страница, на странице есть кнопка которая показывается дерективой, по нажатию на кнопку директива вызывает модальное окно с полями для редактирования. и передает управление контроллеру этого окна. по нажатию на отправку в этом окне, генерируется ссылка и открывается. и в этот момент мне надо закрыть это окно