Konstant1n
Всем привет! Ребята, кто-нить знает, есть ли группа, посвященная electron.js или nw.js?
Ilya 🃏
Народ, кто подскажет, как правильно организовать изменение данных в сервисе, чтобы они обновились во всех контроллерах и директивах? Допустим, есть у меня USER фабрика или сервис, а при изменении данных, какие только watcher'ы не вешал, все-равно ни одна директива не видит там изменений. Пока-что поставил костыли на поток и сделал обновление страницы временно, но это ведь не катит) Что кто знает по этому поводу?
Al
Мы используем что-то вроде паттерна наблюдателя позволяя оформлять подписку на изменения данных внутри сервиса, но это самим надо руками фигачить, поэтому проще использовать стандартную систему ивентов по тому же принципу
Al
В одном проекте просто решили использоваться $rootScope.$emit внутри сервиса и $rootScope.$on везде где нужна подписка, просто обозначили соглашение по поводу именования иветов, вроде $rootScope.$emit(‘serviceName.eventName’, data) Из минусов - костыльно и нужно в документацию проекта вносить все эти условности, из плюсов - не надо ничего имплементировать руками, всё есть из коробки
Ilya 🃏
Неплохо, надо будет попробовать, благодарю)
Ilya 🃏
Не обновляются данные только в одном случае, если в компонентах используются копии объектов/массивов, а не оригиналы. Тогда изменив оригинал копия остается преженей. Используй один и тот же инстанс и все будет отлично работать, еще и памяти сэкономишь
Проблема в том, что данные сначала подгружаются по post запросу и приходится вместо объекта отдавать промис. Если же давать ссылку на пока что пустой объект будут ошибки, т.к. во view будут попытки взять пока еще несуществующие свойства объекта. В фабрике есть переменная info (это и есть объект), пытался в ответ промиса отдавать эту переменную, но дальнейшие манипуляции с объектом фабрики никак не влияли на данные в scope контроллера
Al
Ну и вообще, не хорошо это, использовать ссылки, по мне так данные возращаемые из сервиса вообще должны быть иммутабельны, иначе очень быстро всё в лапшу превращается в большом приложении
Ilya 🃏
Прочитал доку про подписку, все подключил и все работает, весьма доволен результатом, думаю перенять данный опыт с названиями евентов в свои проекты, т.к. весьма удобно)
Leonid
хммм
Leonid
чуваки можт на гитхабе можно нати с ангуляром 2 какойнить проект
Leonid
что бы посмотреть как работает и т д
Дмитрий
гайз, не спец в ангуляре, но досталось наследство. есть у меня такой инпут: <input type="text" class="form-control" ng-model="operatorLogic" ng-change="testLogging(operatorLogic)" required=""> вот сам testLogging: $scope.testLogging = (data) -> console.log 'testLogging' console.log data console.log 'in scope' console.log $scope.operatorLogic почему выводы data и $scope.operatorLogic могут различаться ?
Al
Не должно быть такого поведения, какая версия?
Дмитрий
1.2
Дмитрий
сейчас гляну, что будет, если сделать какой-то объект, и в input operatorLogic заменить на someObject.operatorLogic
Дмитрий
сейчас гляну, что будет, если сделать какой-то объект, и в input operatorLogic заменить на someObject.operatorLogic
да, это помогло. почему так, мб у кого есть короткое объяснение? :)
Timmür
потому что простой тип данных
Timmür
про это же дофига пишут
Дмитрий
это я так и понял, хотелось бы чуть углубиться в angular. ну ладно, и на том спасибо :)
Al
Что впрочем не объясняет такого странного поведения, там для этого что-то должно влиять на operatorLogic со стороны Но да, всё что идёт в ng-model должно всегда быть свойством чего-то, а не идти прямиком в scope, чтобы избежать подобных недоразумений
Timmür
http://www.codelord.net/2014/05/10/understanding-angulars-magic-dont-bind-to-primitives/
Timmür
кажется это
Ilya 🃏
Немного не в тему, но кто может подсказать сервис для подключения онлайн-оплаты (типа робокасса), но свозможностью внедрения оплаты в сайт (iframe) и тестовым апи
Timmür
Робокасса ?
Ilya 🃏
Робокасса не пригляделась
Ilya 🃏
там нет iframe, на сколько я понял, да и к yii2 не особо приятно её прикручивать
Timmür
То есть пользователь остается на вашем сайте, а сама форма для ввода данных в фрейме?
Ilya 🃏
Ну да)
Ilya 🃏
Сколько нагуглил, везде реализуется как переход на сайт робокассы и возврат, вместе с callback трех типов (успешно, фейл и информирование о деталях платежа)
Ilya 🃏
Нужно чтобы это все на ангуляре работало-то, без всяких переходов и input-hidden
Timmür
а ты не пробовал просто засунуть их в фрейм а у себя форму отправлять в фрейм?
Ilya 🃏
Только думал об этом, вообще до этого еще не дошел, пока пытаюсь в апи разобраться и пытаюсь прилепить к yii2
Timmür
у робокассы простое АПИ и документация, на удивление, неплохая
Ilya 🃏
как сделаю, отпишусь о результатах внедрения в iframe)
Timmür
😉👌
Eugene
чуваки можт на гитхабе можно нати с ангуляром 2 какойнить проект
https://medium.mybridge.co/18-amazing-open-source-angular-projects-dd9e81d921ee#.t9qzzhsl7
Leonid
это супер ахуен
Ilya 🃏
😉👌
Весьма печально, но у домена робокассы стоит X-Frame-Options' на 'SAMEORIGIN' и запрещает тем самым вставлять её в iframe. =(
Вадим
Робокасса это в принципе так себе платежка, я говорю о документации и о работе с АПИ
Timmür
Очень грустно. Тогда наверное только договор заключать с банком на эквайринг и самому все имплементить
Вадим
Не, есть платежная система, которая позволяет вообще самому форму оплаты делать у себя на сайте
Вадим
А что конкретно не так?
Я долго не мог разобраться с их CRC кодами оплаты - они разные в разных эндпоинтах и инфу я в итоге смог найти только на хабре, а у них на оффсайте так и не нашел
Timmür
Я долго не мог разобраться с их CRC кодами оплаты - они разные в разных эндпоинтах и инфу я в итоге смог найти только на хабре, а у них на оффсайте так и не нашел
Ну когда мы у себя настраивали, у них уже была новая документация и там все довольно исчерпывающе и с примерами. Так чтоб очень быстро все подключить и настроить, они отличный вариант
Вадим
А вот эта платежка позволяет делать то, что я описал выше - делать свою форму https://cloudpayments.ru/
Вадим
http://cloudpayments.ru/Docs/Checkout
Вадим
я нашел ее, когда пытался найти аналог американского stripe для России
Timmür
возможно они поменяли доки, да. Но осадок прошлый остался
У меня осадок с той паники когда у их банка-партнера лицензию отозвали 😅😅
Вадим
да, не оч приятная ситуация)
Ilya 🃏
В принципе у робокассы есть еще один жирный минус - нельзя полностью взять на себя оплату комиссии. Такая возможность есть: высчитывать вручную через их апи по выбранному человеком способу оплаты. Но если уже на их сайте он выберет другой способ оплаты - то робокасса любезно скажет "плати, хули" и вместо нужных 3000 он заплатит 2700 из кармана. И эта дыра никак не прикрывается, как почитал, уже много веков.
Ilya 🃏
Попробую что-нибудь сварить с fondy.eu, надеюсь там получше будет
Anonymous
Привет, ребят, может кто-то сталкивался с такой проблемой - у директив не рендерится контент, пока на странице не произойдёт какое-либо действие (клик в любую область, нажатие кнопки, неважно). Так себя ведут все директивы в проекте. Это частично решается костылём(засовываю директиву в ng-if и через таймаут ставлю ng-if=true), но это не всегда помогает. Может кто-то сталкивался с подобным, из-за чего может быть? Вот так себя ведут директивы: https://gyazo.com/650901853200e599ad460ea68f334f00
Al
Потому что цикл $digest не проходит после получения данных, они там для директив откуда берутся?
Al
Если кратко: Ангуляр не знает, что что-то изменилось и надо снова запустить цикл грязной проверки и сделать соотвествующие изменения Когда ты делаешь клик, то ангуляр сам запускает этот цикл, поэтому ты видишь изменения
Al
Видимо у тебя там данные приходят как-то асинхронно и не через ангуляровский сервис? ($timeout и $http в превую очередь предназначены для того, чтобы в конце выполнить $apply() и запустить цикл)
Anonymous
Блин, действительно, там через хабы приходят данные, сейчас попробовал $apply - помогло, просто странно то, что я беру данные из уже готового объекта, а потом ренедрю директиву, а не наоборот, но это скорее-всего проблема связанная с трансклюд скоупом. Спасибо большое.
Дмитрий
Спам же
🐙 Павел
@igorz
Igor
👍 мерси
Андрей
Всмысле спам же? Чот не понимаю вас
Сергей
сообщение, которое было спамом удалили
Sērhīī
Каналы есть по angular?
Sērhīī
Ну что, кто натыкался в angular2 на динамические шаблоны? Похоже эти тоже свернули не туда. Я даже не знаю, чего они хотят сделать без runtime, как дыры в своем видении затыкать будут.
Sērhīī
Ну ее нет. Шаблон прибивается к компоненту намертво на этапе компиляции
Andrey
ну и норм
Sērhīī
Т.е. никакого mwc на этапе рантайма
Andrey
ну ок зато у нас красивенько и понятно
Sērhīī
ну и норм
Ну для простых прилад ок, как что-то нужно хитрое - пока-пока
Sērhīī
Andrey
ну какбе поэтому, тут нада дружить с реатом
Andrey
иначе походу никак хитрее не делать
Sērhīī
Ну тогда нах нужен Анг, если все решается реактом? ))
Andrey
не все решается реактом
Sērhīī
Это кстати отностится ко всем CMS и прочим CRUD приладам )