Size: a a a

Angular.js (1.x) — русскоговорящее сообщество

2016 May 31

Д

Дмитрий Đǿ₥Ҝǭ in Angular.js (1.x) — русскоговорящее сообщество
м-да, если вынести li за предел ul - нажатия срабатывают. Странненько
источник
2016 June 01

Д

Дмитрий Đǿ₥Ҝǭ in Angular.js (1.x) — русскоговорящее сообщество
чат, как лучше в angularjs передавать изменения родительского контроллера в дочерний? примеру, есть контроллер parent, у него переменная param, и есть контроллер child, имеющий доступ $scope.parent. Как лучше сделать так, чтобы при изменении parent.param в child происходили вычисления с новым param ?
источник

🐙Д

🐙 Сосиско Диско 🐙 in Angular.js (1.x) — русскоговорящее сообщество
Watch?
источник

V

Valery in Angular.js (1.x) — русскоговорящее сообщество
через вочеры
источник

Д

Дмитрий Đǿ₥Ҝǭ in Angular.js (1.x) — русскоговорящее сообщество
пошёл гуглить, спасибо : )
источник

AF

Alexander Fedotov in Angular.js (1.x) — русскоговорящее сообщество
В child автоматически доступны все изменения сделанные в parent, только если в child не определено это поле, там всё по принципу цепочки прототипов работает

Если нужно не просто отображать это, а делать некие вычисления когда в parent это что-то изменилось, то есть три пути:
1) $watch
2) $event
3) Собственный сервис

И $watch самый отстойный из них, не используй его. Во-первых, создавать вотчеры самом это костыльно, во-вторых, если случайно переопределишь в child этот параметр, то подписка пойдёт по пизде.
источник

AF

Alexander Fedotov in Angular.js (1.x) — русскоговорящее сообщество
Если у тебя чёткая иерархия, то используй $event прокидывая события ниже
источник

AK

Aleh Kashnikau in Angular.js (1.x) — русскоговорящее сообщество
+
источник

AK

Aleh Kashnikau in Angular.js (1.x) — русскоговорящее сообщество
ну, еще, если юзаешь компоненты\директивы, то передавай его как параметр, а в контроллере child сеттерам обрабатывай как надо
источник

Д

Дмитрий Đǿ₥Ҝǭ in Angular.js (1.x) — русскоговорящее сообщество
в случае, если я захочу слушать $watch параметр родителя, мне нужно будет прописать в child примерно так:

$scope.$watch('$scope.$parent.param', function() {
       console.log('param has changed : ' + param);
   });
?
источник

AF

Alexander Fedotov in Angular.js (1.x) — русскоговорящее сообщество
Хватит $scope.$watch(‘param’, () => {}); на самом деле, хотя отсылка к родителю предохранит от случайно затирания, но если передаёшь строкой, то $scope опускай, он сам собой подразумевается
источник

AF

Alexander Fedotov in Angular.js (1.x) — русскоговорящее сообщество
Но НЕ ИСПОЛЬЗУЙ $watch для таких случаев, у нас за такое по ебалу с ноги дают сразу :)
источник

🧨

🧨 ethorz in Angular.js (1.x) — русскоговорящее сообщество
ультра хардкорное программирование
источник

🧨

🧨 ethorz in Angular.js (1.x) — русскоговорящее сообщество
за говнокод пиздят
источник

🧨

🧨 ethorz in Angular.js (1.x) — русскоговорящее сообщество
мило
источник

AF

Alexander Fedotov in Angular.js (1.x) — русскоговорящее сообщество
Используй $scope.$broadcast у родителя и $scope.$on у потомка для таких случаев, если это именно контроллеры

И прокидку через props если это директивы, как сказал выше Aleh
источник

Д

Дмитрий Đǿ₥Ҝǭ in Angular.js (1.x) — русскоговорящее сообщество
Alexander Fedotov
Но НЕ ИСПОЛЬЗУЙ $watch для таких случаев, у нас за такое по ебалу с ноги дают сразу :)
при том, что у меня child-контроллер на список, почему не использовать? Не перезатру переменную в нём- это точно. И, как я понял, это быстрее, чем использовать $event
источник

AK

Aleh Kashnikau in Angular.js (1.x) — русскоговорящее сообщество
вообще по-хорошему ты не должен юзать $scope
источник

AK

Aleh Kashnikau in Angular.js (1.x) — русскоговорящее сообщество
ну вот вообще, есть controller as
источник

AF

Alexander Fedotov in Angular.js (1.x) — русскоговорящее сообщество
Если у тебя какой-то список который зависит от каких-то данных из другого контроллера, то это вообще работа для сервиса
источник