Sergey
нг1 он весь на директивах, можно конечно плыть против течения, но толку
AluV (დანიილ)
Вот это уже на что то человеческое похоже, правда не ангуляр: https://github.com/monterail/vuelidate
AluV (დანიილ)
Я ниже привел пример для фронта, нет никакой разницы. PHP интерпретируется и код в нем лимитирован по жизненому циклу и Js тоже.
Я могу так же сравнивать Java и TypeScript. У них свои задачи, архитектуру можно строить аналогичным способом.
AluV (დანიილ)
Модели, сервисы, MVC, все тоже самое. Если что то реализовано по разному это конкретная реализация фреймворка.
В JavaSpring я не нашел нормальных человеческих миграций, но это не значит что их нельзя сделать на Java или они будут выглядить по другому чем на других языках.
мы все равно используем абстракции языка.
Я и говорил про абстракцию.
Sergey
Rem1te
у ПХП - жизненный цикл вызвал - отработал - умер
У джс - запустился - реагирую на пользователя.
Конечно в таком случае контролировать потоки данных становится сложнее поскольку поведение пользователя зачастую не предсказуемое
Далее, Вы можете описать сервис для валидации данных, который Вам вернет обьект ошибок с ключами и раставить их везде, в этом нет ничего сложного, повторюсь ещё раз, если вы что-то сделали и у вас оно не едет, но едет у миллионов других разработчиков, то дело не в технологии
Rem1te
AluV (დანიილ)
»>У джс - запустился - реагирую на пользователя.
Окей, Js => Как работают контекст. Как он работает в браузере.
Rem1te
Вы начали сравнивать два фреймворка которые заточены под совершенно разное.
Один под фронт второй под бек, у них совершенно разная логика поведения, структура, и их функции
AluV (დანიილ)
Логика поведения может быть разная, API для разработчика одинаковый
Rem1te
Вот если бы вы взяли реакт и сказали - Вот в реакте лучше потому и потому, спор был бы аргументирован
Sergey
@Alu_V вы может изначальную задачу расскажете? Может у нас тоже пригорит
Sergey
Rem1te
ну да, там не такое, а в ангуляре 2+ там вообще с этим все хорошо :)
Rem1te
Увы и ах :(
AluV (დანიილ)
Я не могу про валидацию ReactJs сказать ничего хорошего, там просто все проще,поэтому делашь как хочешь
Rem1te
Ну не знаю, как по мне реакт + валидация + формы = боль и страдания
AluV (დანიილ)
Ну там есть разные расширения типа react-validation и другие очень похожие. Этим вполне можно пользоваться
Sergey
Ну просто я не понимаю что именно вас в том коде беспокоит
Ramazan
ну у меня сервис зависит от модуля а модуль от сервиса
Ramazan
и ругается на инджект
Sergey
Зачем он такой нужен я тоже не особо понимаю, но я не работал со встроенным роутером
Ramazan
я не пойму что ему не нравиться
Ramazan
Ramazan
почти
Ramazan
у меня тоже .net mvc
Ramazan
только тут в примере статические, а уменя динамические
Sergey
Ну я с мвц не работал, идею понимаю только примерно
Sergey
В доке это просто вставка произвольного кода в произвольное место
Sergey
В нг1 строительные блоки - директивы и компоненты
Sergey
Я так и не понял что вы пытаетесь достичь)
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
или хотя бы направление куда копать
AluV (დანიილ)
У директивы есть ng-model?
Нету, ответ: невозможно. Вот он и ангулярJs, сейчас попробую просто через классы сделать свой div с ошибкой.
pa[aad
Вообще можно валмдировать только модель и нн привязываться к ng model и стандартной валидации
pa[aad
class-validation на ts через декораторы
Sergey
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() ?
Sergey
Igor
есть страница, на странице есть кнопка которая показывается дерективой, по нажатию на кнопку директива вызывает модальное окно с полями для редактирования. и передает управление контроллеру этого окна. по нажатию на отправку в этом окне, генерируется ссылка и открывается. и в этот момент мне надо закрыть это окно