Maksym
Ребята, есть несколько однотипных действий, например действие по 'escape'
var body = document.querySelector('body');
body.onkeydown = function (e){
используется в нескольких контроллерах хочу вынести в отдельный сервис, но так как сервисы, фабрики работают по сути как функция, отдают значения что в таком случаи используют?
чтобы определенный модуль следил за определенными действиями
Viktor
может лучше директиву написать?
Maksym
может, я просто не фронтэндер, а здесь даже директивы прописаны ф-циями
(function(){
'use strict';
angular
.module('buzz')
.directive('sendnotification', sendnotification);
function sendnotification($rootScope, $timeout, animateAndStyleService){
return{
Bogdan
Viktor
может, я просто не фронтэндер, а здесь даже директивы прописаны ф-циями
(function(){
'use strict';
angular
.module('buzz')
.directive('sendnotification', sendnotification);
function sendnotification($rootScope, $timeout, animateAndStyleService){
return{
(function(){}) - это просто замыкание области видимости, в ней объявляется директива, можно, например, в этом же месте создать ещё одну директиву, которая будет обрабатывать событие onkeydown, только в ней лучше писать не document.querySelector('body'), а борабатывать тот элемент для который директива действует (если restrict: 'A' будет, конечно)
Maksym
(function(){}) - это просто замыкание области видимости, в ней объявляется директива, можно, например, в этом же месте создать ещё одну директиву, которая будет обрабатывать событие onkeydown, только в ней лучше писать не document.querySelector('body'), а борабатывать тот элемент для который директива действует (если restrict: 'A' будет, конечно)
ясно, выходит так же работают и сервисы и фабрики, только в нужный контроллер нужно передавать директиву, сервис чтобы она ссылалсь на контроллер
Viktor
ясно, выходит так же работают и сервисы и фабрики, только в нужный контроллер нужно передавать директиву, сервис чтобы она ссылалсь на контроллер
сервисы, фабрики - это больше для работы с данными, например: запросы на сервер, данные нужны в разных контроллерах и не хочется (нельзя) использовать $rootScope, какие то общие вычисления
директивы - для работы с dom, директивы бывают разные можешь почитать по ссылке ниже, в твоем случае направшивается restrict: 'A' - т.е. после того как напишешь директиву, сможешь её использовать на тэге body как обычный html атрибут, примерно так: <body onCheckDownMySuperPuperDirective> ... </body>
http://angular-doc.herokuapp.com/guide/directive
Viktor
в общем, пока не сделаешь простенький проект "для себя", то особо и не разберешься как взаимодействуют директивы, сервисы, контроллеры и т.д.
Maksym
Sasha
Нужна консультация по архитектуре.
Например, есть некий набор виджетов, которые завернуты в компоненты.
У нас есть некая форма, в которой в зависимости от типа поля - рендерится соответствующий компонент.
<date-time-widget field-data="vm.formData.dateField></date-time-widget>Собственно, односторонний биндинг здесь не изменит formData.dateField. Двусторонний - вроде не расово использовать. Как тут поступить?
Viktor
кстати. Может я не верно понял. Но, я такую штуку решал с помощью $compile и switch в кач-ве рулевого
Viktor
причем делал именно для компонентов
Viktor
делал так, потому что очень удобно
Sasha
Тут вопрос не в динамическом рендеринге компонентов, а скорее - как изменить сами данные у формы.
Например, в биндинг виджета приходят данные:
<widget data="vm.formData.name"/>Когда мы меняем данные в виджете, они получаются изолированными, потому что приходят туда через односторонний биндинг('<') и собственно vm.formData.name не поменяется.
Вопрос именно архитектурный.
Viktor
тогда либо колбеком отправляй в родителя "&" либо "="
Sasha
Ну это же получается противоречит концепции: 'только односторонние биндинги'. В случае с миграцией на 2й будут проблемы.
Sasha
Поэтому я и хочу понять, как такие кейсы будут работать в случае со вторым ангуляром
Viktor
если тебе важно, чтобы твоя обновленная дата из компонента, оповещала родителя, в котором вызван этот компонент, то придется смириться с двунаправленной связью, либо с вызовом родительной функции внутри компонента, а в этой функции ты можешь закинуть свежую дату, чтобы обновить дату в род. контроллере
Viktor
может быть я для тебя кеп вещь написал, но больше особо вариков не вижу
Sasha
Я вот тоже больше вариков не вижу. Но все это противоречит концепции односторонних биндингов. Может, вообще так делать не стоит?
Sasha
В смысле держать виджеты в компонентах
baur.sha
ребят вы eventEmitter паттерн имплементили в ангуляр не могу вспомнить как сделать чтобы при авторизации без обновлении страницы имя и фамилия юзера появилась в панеле хедера
Viktor
Попробуй опустить колбек, по сути так работает и реакт со своими компонентами и ангуляр 2
Sasha
Как вариант, нужно максимально приблизить реализацию всего ко 2-му
Sasha
Спасибо
Исмаил
Ребят, нужен ресурс что б ангулар жс подучить, только годный и не старый, незнаете таких? Желательно что бы обучалка была, а не просто документация
Sergei
Sergei
и конечно родной туториал
Исмаил
Какой туториал
Исмаил
Родной вроде в ангулар.ио тока?
Исмаил
Но там не жс
Sergei
ну как, вот этот: https://docs.angularjs.org/tutorial
Sergei
с него и начни пожалуй
Sergei
а еще вот небольшой бесплатный курс на codeSchool: https://www.codeschool.com/courses/shaping-up-with-angularjs
Исмаил
Ой спасибо
Алексей
Исмаил
На работе пока жс используют
Исмаил
На 4 не перешли еще
Исмаил
Эмм
Исмаил
А это что было? (
Алексей
https://github.com/ngParty/ng-metadata
Исмаил
Ого, полезная штука поход
Denis
Нюансы в том что первый и второй ангуляр по-разному работают
Denis
Как по мне так лучше мигрировать с помощью гибридного приложения
Bogdan
Нг метадата крутая штука
Очень рекомендую использовать. Буду на нем сидеть пока полностью не перенесут ангулар материал на старшие версии ангулара
Dmitriy
ребят подскажите плиз, переживаю что растет к-во watcher-ов на странице , но отказаться от их функционала не могу, где то читал что $watch так себе подход, но как выкручиваться из ситуации когда нужно сделать действие в момент изменения переменной которая вотчится
Иван
вариантов немного... сеттеры, rxjs
Ruslan
откажись от них - сеттеры, коллбэки, ng-change
Ruslan
ватчеры порождают хаос
Dmitriy
а есть где почитать на эту тему *
Dmitriy
?
Dmitriy
как отказаться
Dmitriy
просто опой чую
Viktor
сколько сейчас их?
Dmitriy
что это не оч решения ватчить все кругом )
Dmitriy
нц щас 2 на стр )
Dmitriy
2 ng-model отслеживаю и аяксом запрашиваю данные
Bekbolot
Всем привет ребята
Bekbolot
Кто попробовал AngularJS yeoman генератор?
Dmitriy
а если изменения происходят не на фронте ?
Dmitriy
если я с бека получаю данные
Dmitriy
то тут вотчер выручает
Dmitriy
это тоже как то можно заменить ?
Viktor
всего лишь 2?)))
Dmitriy
ну пока да )
Dmitriy
ну я как бы на будущее хочу застраховаться )
Viktor
помню начинались проблемы когда было 20-30К
Иван
если вочтишь сервис, то там вариантов нет... ну rxjs... но если не собираешься мигрировать, то нафиг не сдалось
Dmitriy
вотчю как раз таки сервис
Dmitriy
эти 2 вотчера на них и висят
Dmitriy
я получается с сервиса отслеживаю изменения и отрисовываю на вьюхе в зависимости от
Dmitriy
того что пришло
Иван
нормально, с пЫвом потянет...
Dmitriy
хех)
Dmitriy
спасибо за консультацию)
Иван
а что по вотчу делаешь? много там логики представления... если нет, спускай всё сервис...