@angular_js

Страница 315 из 325
Sergey
05.09.2018
11:21:31
В then делает sendEmail

Или что угодно, что нужно сделать после показа модалки

Модалка у себя просто дёргает hide и cancel по обработчикам кнопок

Всё

Google
Igor
05.09.2018
11:22:51
я вызываю эту модалку в директиве, и передаю все в контроллер этой модалки, из контроллера снова вызвать show() ?

Igor
05.09.2018
11:25:57
есть страница, на странице есть кнопка которая показывается дерективой, по нажатию на кнопку директива вызывает модальное окно с полями для редактирования. и передает управление контроллеру этого окна. по нажатию на отправку в этом окне, генерируется ссылка и открывается. и в этот момент мне надо закрыть это окно

Sergey
05.09.2018
11:27:20
Получайте из модалки ссылку

Или то что надо для её генерации

По нажатию кнопки ОК в модалке передавайте модель в $mdDialog.hide({propA:....})

Там где вы вызывали $mdDialog.show({...}).then((model) => {const url = .....; $state.go(url)});

$mdDialog.cancel не возвращает данные, он резолвит промис со значением "ошибка, отклонено, отмена"

Andrey
05.09.2018
11:30:38
https://github.com/typestack/class-validator

Igor
05.09.2018
11:34:08
Там где вы вызывали $mdDialog.show({...}).then((model) => {const url = .....; $state.go(url)});
ааа, так понятнее) а так можно было?) надо немного переделать свой код

Ramazan
07.09.2018
02:53:51
всем привет

Google
Ramazan
07.09.2018
02:54:41
народ подскажите плиз как <select custom-directive></select>

отслеживать изменения значение

scope.$watch(atrrs.ngModel - не хватает так как он срабатывает только когда фокус меняется или когда выбираем значение из списка, у меня select с фильтром там можно вводить символы

Andrey
07.09.2018
04:36:17
Бот ?

Sergey
07.09.2018
05:37:25
Экспресс-тест Тьюринга))

Remite
07.09.2018
07:46:13
Sergey
07.09.2018
08:07:03
@jashka_jashka тут спам

Андрей
09.09.2018
17:43:11
плз, кто может помочь залить проект на гит пейджес, уже не знаю что и делать

Andrey
09.09.2018
17:43:44
есть же куча мануалов по этому

одна ветка для кода другая для билда ветка которая будет показываться указывается в настройках

задолбали боты, ща будет зачистка

Евгений
11.09.2018
21:21:34
Есть кто живой?

Артур
11.09.2018
21:22:46
+

Евгений
11.09.2018
21:25:07
Не подскажите пару ответов на вездесущий вопросы?

Remite
11.09.2018
21:25:23
Евгений
11.09.2018
21:27:55
К делу: 1) Есть контроллер, есть у контроллера директива... Куда передать данные правильнее в директиву (массив данных) или в контроллер потом передать через аттрибут 2) Данные передаються через WebSocket, и инногда вэбсокет глючит Как правельнее всего было-бы организовать обработку на морде (frontend) что доступны данные будут только если данные получены. Сейчас это реализованно на Promise API

Примеры кода: WebSocket Client: // Настройки для WebSocket =) app.run(['$rootScope', $rootScope => { let wsurl = document.location.href.replace(/^(http)(s?:\/\/([^\/]+)).*/, 'ws$2/echo'); let wstry = 0; let websocketConnection = null; let websocketCallbacks = {}; // TODO:: Create message expiration! [_id : [onsucces,onerror,dateNow]] $rootScope.websocketReady = false; // WebSocket Callback Parser $rootScope.$on('ws:raw', (event, msg) => { // e.data instanceof ArrayBuffer // e.data instanceof Blob // typeof e.data === "string" if (typeof msg === "string" && msg[0] === '{' && msg.slice(-1) === '}') { try { let response = JSON.parse(msg); if ((response.action === "callback") && (typeof websocketCallbacks[response._id] !== "undefined")) { let [onsuccess, onerror, expired] = websocketCallbacks[response._id]; delete websocketCallbacks[response._id]; if (typeof response.error === "undefined") { onsuccess(response.data); } else { onerror(new Error("ws:error: " + response.error)); } } } catch (err) { } } }); // WebSocket Handler/Reloader function WebSocketReloader() { let ws = new WebSocket(wsurl); ws.onopen = event => { wstry = 0; websocketConnection = ws; $rootScope.$apply(function () { $rootScope.websocketReady = true; }); $rootScope.$emit('ws:ready', event); }; ws.onclose = event => { websocketConnection = null; $rootScope.$apply(function () { $rootScope.websocketReady = false; }); $rootScope.$emit('ws:close', event); window.setTimeout(WebSocketReloader.bind(this), (wstry<5 ? (++wstry*1000) : 5000)); }; ws.onmessage = event => { $rootScope.$emit("ws:raw", event.data); }; ws.onerror = event => { $rootScope.$emit('ws:error', event); }; } WebSocketReloader(wsurl); $rootScope.wsCall = (name, ...args) => { return new Promise((onsuccess, onerror) => { let _id = (d => [d.getUTCFullYear(),d.getUTCMonth()+1,d.getUTCDate(),d.getUTCHours(),d.getUTCMinutes(),d.getUTCSeconds(),d.getUTCMilliseconds()].join('/')).call({}, new Date()); websocketCallbacks[_id] = [onsuccess, onerror, new Date()]; if (websocketConnection != null) { websocketConnection.send(JSON.stringify({ "action": "call", "call": name, "_id": _id, "attr": args })); } else { let interval; interval = window.setInterval(function () { if (!$rootScope.websocketReady) return; window.clearInterval(interval); $rootScope.wsCall(name, ...args) }, 1000); } }) }; }]);

WebSocket Request: $scope.$root.wsCall('order.create.new') .then((data) => $scope.$apply((data) => { $scope.order.create.data = data; })) .catch(err => console.error(err));

Где (Запрос): { action: "call", /// Процедура со стороны сервера _id: "уникальный id запроса", // call: "имя.функции", // например 'order.create.new' attr: "что либо", } Ответ: { "action": "callback", // Определяет что это ответ на call "_id": "8797807807801", // Тот-же id что и _id запроса - то-есть логический это ответ для Promise.then "data": "какой либо результат" // Данные ответа }

Вопрос больше реторический - как красиво сделать запрос/ответ/ошибка

Google
Евгений
11.09.2018
21:40:32
Что лучше делать если ошибка - как сделать повтор и красивый диалог повторов

Sergey
12.09.2018
10:53:41
Вопрос больше реторический - как красиво сделать запрос/ответ/ошибка
А есть какой-то смысл почему это всё в rootScope, а не в сервисе?

А по поводу кросиво сделать, может быть елси скрестить https://cvuorinen.net/2016/05/using-rxjs-observables-with-angularjs-1/ с https://github.com/ohjames/rxjs-websockets

Сам я конечно так не делал, но выглядит как выполнимая задача

Туда просто так и просятся Observable

Stas
12.09.2018
11:51:21
подскажите есть urlPattern: '/property/:propertyId/reservation-source(/:id)/trashed()'; как для трешеда устьановить дефолтное значение по умолчанию?

Aleksandr
12.09.2018
11:58:01
Всем привет. У меня вопрос по либе ng-metadata. Код пишется на TS. Пытаюсь создать директиву аналогичную ng-if. Во втором ангуляре делается на раз. В первом тоже можно. А вот ng-metadata не получается. Я попробовал использовать привемр из первого, но не взлетает. Если есть у кого идеипомогите плиз. https://stackoverflow.com/questions/20325480/angularjs-whats-the-best-practice-to-add-ngif-to-a-directive-programmatically (edited)

Aleksandr
12.09.2018
12:10:18
Она используется в проекте чтобы одновременно поддерживать typescript и js со старым кодом

Andrey
12.09.2018
12:11:46
и зачем изобретать заново ng-if ?

Aleksandr
12.09.2018
12:14:29
ну как в примере такая же фигня с доступом. Чтобы не прокидывать в 10 компонентов значение, что доступ закрыт и использовать как ng-if=‘$ctrl.hasAccess’ А просто повесить на любой компонент директиву my-aceess. И элемент не отрендеритьяс если доступ запрещен.

Andrey
12.09.2018
12:18:29
export default function WhenUserDirective(AuthService: AuthService) { 'ngInject'; return { restrict: 'A', link: (scope, element, attrs) => { const watcher = scope.$watch(() => AuthService.isRest(), (val) => { if (val) { element.hide(); } else { element.show(); } }); scope.$on('destroy', () => { watcher(); }); } } }если хотите что бы контент удалялся это можно сделать, но тогда вам нужно еще его и вставить и хранить где-то

директиву вешаю на блоки где мне нужно таким образом <div only-user>... тут что-то html</div>

Aleksandr
12.09.2018
12:22:52
hide() show() это же просто display: none. Элемент все равно отрендериться.

Google
Sergey
12.09.2018
12:28:03
Ну насколько я понял код, оно толкьо одно значение проверяет из сервиса

Andrey
12.09.2018
12:28:39
Ну насколько я понял код, оно толкьо одно значение проверяет из сервиса
это только было сделано для корзины и еще чего-то типа для ресторана скрыть а для пользователя показать

Sergey
12.09.2018
12:30:24
Понятно) У меня проверок разных десятки, как их бы так красиво завернуть я так и не придумал

Andrey
12.09.2018
12:30:39
hide() show() это же просто display: none. Элемент все равно отрендериться.
в директиве можете заюзать удаление элемента, он вроде возвращает html который удалили где-то храните и потом вставляйте когда нужно делов то

Sergey
12.09.2018
12:31:26
А просто исходники ng-if нельзя скопировать в директиву?)

Aleksandr
12.09.2018
12:35:19
Ребят мы не пишем на js. А пишем на TS какбы пользуясь всеми фишками ангуоляр 2. Это все предоставляет ng-metadata, компилируя потом все это добро в первый ангуляр. Поэтому хрен поймешь как это реализовать

Sergey
12.09.2018
12:36:45
А тс он какой-то волшебный, к жс никак не относится? Ну смотрите что там декоратор генерирует)

Andrey
12.09.2018
12:36:47
Ребят мы не пишем на js. А пишем на TS какбы пользуясь всеми фишками ангуоляр 2. Это все предоставляет ng-metadata, компилируя потом все это добро в первый ангуляр. Поэтому хрен поймешь как это реализовать
мы так и не поняли в чем проблема, возьмите посмотрите как сделали ng-if и переведите на ts к черту что вы используете ng-metadata и ts если все равно это в первый ангуляр и чистый js компилится

Dmitriy
13.09.2018
14:37:08
Всем привет. Есть родителский div с ng-swipe-left и ng-swipe-right внутри есть дочерний div. Как отменить ng-swipe-left и ng-swipe-right на дочернем?

Страница 315 из 325