
Sergey
05.09.2018
11:21:31
В then делает sendEmail
Или что угодно, что нужно сделать после показа модалки
Модалка у себя просто дёргает hide и cancel по обработчикам кнопок
Всё

Google

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

Sergey
05.09.2018
11:23:37

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

Sergey
05.09.2018
11:34:40

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
А по поводу кросиво сделать, может быть елси скрестить 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)

Andrey
12.09.2018
12:09:06

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:15:51

Sergey
12.09.2018
12:17:07
И получилось дикое говно, вот)

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. Элемент все равно отрендериться.

Sergey
12.09.2018
12:25:35

Andrey
12.09.2018
12:26:54

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

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

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