@angular_js

Страница 63 из 325
Михаил
08.10.2016
10:02:48
Народ, уже всю голову сломал, помогите какими-нибудь мыслями, пожалуйста. Есть ng1.5.5, банальный компонент, внутри его контроллера банальная функция: var $ctrl = this; function open() { $ctrl.is_open = true; } В шаблоне на $ctrl.is_open завязан ng-show. Если я вызываю эту функцию из самого компонента (просто хардкодом из контроллера или по ng-click на каком-нибудь элементе) - то все нормально. А вот если она вызывается коллбеком из местной реализации Event Emitter'a (навроде ee.on( 'my-event', open )), то начинается интересное: - функция отрабатывает - присваивает $ctrl.is_open = true; - нифига не обновляет шаблон В принципе, логично бы все валить на EventEmitter но: 1) в нем нет ничего замороченного, он просто проходит по массиву подписчиков и вызывает коллбеки 2) функцию то он вызывает нормально 3) в куче аналогичных мест - все работает как часы $scope.$apply(); и прочую подобную магию применял, дебаггером по коду ходил. Нифига. Есть у кого-нибудь хоть какие-то мысли, в какую сторону копать?

Eugene
08.10.2016
10:16:13
Народ, уже всю голову сломал, помогите какими-нибудь мыслями, пожалуйста. Есть ng1.5.5, банальный компонент, внутри его контроллера банальная функция: var $ctrl = this; function open() { $ctrl.is_open = true; } В шаблоне на $ctrl.is_open завязан ng-show. Если я вызываю эту функцию из самого компонента (просто хардкодом из контроллера или по ng-click на каком-нибудь элементе) - то все нормально. А вот если она вызывается коллбеком из местной реализации Event Emitter'a (навроде ee.on( 'my-event', open )), то начинается интересное: - функция отрабатывает - присваивает $ctrl.is_open = true; - нифига не обновляет шаблон В принципе, логично бы все валить на EventEmitter но: 1) в нем нет ничего замороченного, он просто проходит по массиву подписчиков и вызывает коллбеки 2) функцию то он вызывает нормально 3) в куче аналогичных мест - все работает как часы $scope.$apply(); и прочую подобную магию применял, дебаггером по коду ходил. Нифига. Есть у кого-нибудь хоть какие-то мысли, в какую сторону копать?
transclude true?

Михаил
08.10.2016
10:16:47
нет, по дефолту, false

Lupsick
08.10.2016
10:16:54
Народ, уже всю голову сломал, помогите какими-нибудь мыслями, пожалуйста. Есть ng1.5.5, банальный компонент, внутри его контроллера банальная функция: var $ctrl = this; function open() { $ctrl.is_open = true; } В шаблоне на $ctrl.is_open завязан ng-show. Если я вызываю эту функцию из самого компонента (просто хардкодом из контроллера или по ng-click на каком-нибудь элементе) - то все нормально. А вот если она вызывается коллбеком из местной реализации Event Emitter'a (навроде ee.on( 'my-event', open )), то начинается интересное: - функция отрабатывает - присваивает $ctrl.is_open = true; - нифига не обновляет шаблон В принципе, логично бы все валить на EventEmitter но: 1) в нем нет ничего замороченного, он просто проходит по массиву подписчиков и вызывает коллбеки 2) функцию то он вызывает нормально 3) в куче аналогичных мест - все работает как часы $scope.$apply(); и прочую подобную магию применял, дебаггером по коду ходил. Нифига. Есть у кого-нибудь хоть какие-то мысли, в какую сторону копать?
попробуй в $timeout обернуть

Google
Eugene
08.10.2016
10:17:24
Михаил
08.10.2016
10:17:41
пробовал, не помогло сейчас в функции достал через angular.element.isolateScope(), сравнил со скоупом контроллера - оказались разные.

Lupsick
08.10.2016
10:17:47
function open() { $timeout(function() { $ctrl.is_open = true; }); }

Михаил
08.10.2016
10:18:38
Lupsick
08.10.2016
10:18:59
ну вот это танцы с бубном и ангуларом

постоянные

Михаил
08.10.2016
10:19:33
Ну бывает, да. Обычно неделями ничего не вылазит, а потом хрясь, и доставай бубен.

Немного дополню/изменю вопрос. Почему скоуп может "отцепиться" от элемента? Во время вызова функции достаю скоуп через angular.element и через $scope. Когда функция работает нормально - скоупы совпадают. Когда не работает - они оказываются разными, в скоупе элемента is_open: false, контроллера - как надо, true

Alex
08.10.2016
11:03:24
ee.on( 'my-event', open ) у тебя внутри контроллера?

у тебя при таком вызове по идее теряется скоуп. попробуй через bind создать обёртку с контекстом $ctrl, и передавать в ee.on результат обёртки

это похоже на то, как если бы использовал внутри таймаута функцию, работающую со скоупом - его там просто нет, поэтому и есть обёртки $timeout и $interval

Михаил
08.10.2016
11:11:35
Ок, спасибо за мысль. Вернусь к компу - попробую.

Alex
08.10.2016
12:36:30
есть массив айтемов, получаемых с сервера. когда я их получаю, я пихаю их в переменную контроллера, на которой в шаблоне висит ng-repeat. Вопрос: как мне анимировать появление каждого элемента в списке? не всего списка сразу, а именно каждого элемента?

Google
Alex
08.10.2016
12:41:19
ограничено

я сейчас придумал такую штуку let items = itemsFromApi; items.forEach((item, i) => $timeout(() => vm.items.push(item), i*50))

Aleks
08.10.2016
12:43:31
Если это небольшая цифра то можешь через классы сделать "b-item-{$index}, а в классах постепенно увеличивать транзишн

Дилэй

Alex
08.10.2016
14:51:03
можно, но попахивает стрельбой из пушки по воробьям

Дмитрий
08.10.2016
15:02:18
Alex
08.10.2016
15:03:53
ну я не настаиваю на элгенатности)

MVP
08.10.2016
16:51:43
Ну да Stackoverflow тоже самое предлагает

Дмитрий
08.10.2016
19:48:37
ну я не настаиваю на элгенатности)
Можно кстати это сделать через ng-animate

Точнее я бы даже сказал, что нужно))

Модуль добавляет классы объектам во время разных событий, и потребуется просто описать анимации в css для класса наподобие .directive-on-add

MVP
08.10.2016
19:58:41
Модуль добавляет классы объектам во время разных событий, и потребуется просто описать анимации в css для класса наподобие .directive-on-add
Я тоже об animate сразу подумал, но там же для добавления а у нас если не делать задержку то добавятся все сразу

И санимируются все сразу

Дмитрий
08.10.2016
20:08:17
Можно попробовать указать задержку в анимации селектора .block-add + .block-add

Или во - там же вообще есть класс и на начало события и на конец, объявляем в css начало анимации на .block-add-end + .block-add

Если нормально оформить идею, то всё само будет анимироваться по цепочке)

Evgeny
09.10.2016
12:01:25
Ребят, подкиньте годную литературу по ангуляру с примерами желательно

Kool
09.10.2016
12:23:42
Народ, уже всю голову сломал, помогите какими-нибудь мыслями, пожалуйста. Есть ng1.5.5, банальный компонент, внутри его контроллера банальная функция: var $ctrl = this; function open() { $ctrl.is_open = true; } В шаблоне на $ctrl.is_open завязан ng-show. Если я вызываю эту функцию из самого компонента (просто хардкодом из контроллера или по ng-click на каком-нибудь элементе) - то все нормально. А вот если она вызывается коллбеком из местной реализации Event Emitter'a (навроде ee.on( 'my-event', open )), то начинается интересное: - функция отрабатывает - присваивает $ctrl.is_open = true; - нифига не обновляет шаблон В принципе, логично бы все валить на EventEmitter но: 1) в нем нет ничего замороченного, он просто проходит по массиву подписчиков и вызывает коллбеки 2) функцию то он вызывает нормально 3) в куче аналогичных мест - все работает как часы $scope.$apply(); и прочую подобную магию применял, дебаггером по коду ходил. Нифига. Есть у кого-нибудь хоть какие-то мысли, в какую сторону копать?
scope apply точно, не правильно готовишь

Google
MVP
09.10.2016
13:26:20
Народ, уже всю голову сломал, помогите какими-нибудь мыслями, пожалуйста. Есть ng1.5.5, банальный компонент, внутри его контроллера банальная функция: var $ctrl = this; function open() { $ctrl.is_open = true; } В шаблоне на $ctrl.is_open завязан ng-show. Если я вызываю эту функцию из самого компонента (просто хардкодом из контроллера или по ng-click на каком-нибудь элементе) - то все нормально. А вот если она вызывается коллбеком из местной реализации Event Emitter'a (навроде ee.on( 'my-event', open )), то начинается интересное: - функция отрабатывает - присваивает $ctrl.is_open = true; - нифига не обновляет шаблон В принципе, логично бы все валить на EventEmitter но: 1) в нем нет ничего замороченного, он просто проходит по массиву подписчиков и вызывает коллбеки 2) функцию то он вызывает нормально 3) в куче аналогичных мест - все работает как часы $scope.$apply(); и прочую подобную магию применял, дебаггером по коду ходил. Нифига. Есть у кого-нибудь хоть какие-то мысли, в какую сторону копать?
Поищи ng-if и прочие директивы с закрытые скоупы в соотв шаблонах

Just
09.10.2016
21:25:20
подскажите, пожалуйста, странная вещь с ng-if: 1) есть галерея картинок, они загружаются асинхронно с помощью then/Promise 2) пока они грузяться отображается анимация загрузки пока картинки не загрузяться, отображается div с анимацией, в нем стоит ng-if="loadingChar" когда они загружены в контролере function charsCtrl($scope, $api, getChars, $compile) { $scope.loadingChar = true; var charP = getChars; charP.then(function(result) { $scope.data_chars = result; $scope.loadingChar = false; console.log('loadingChar = false'); }) значение это переменной становится false и этот div должен по идеи перестать отображаться, а div с циклом по картинкам наоборот показываться, но этого не происходит, пока или не перезагрузить страницу или не воспользоваться поиском по картинкам, который работает с помощью фильтра в div'е с ng-repeat. div с циклом: <div class="file-box" ng-repeat="char in data_chars | filter:searchText" ng-if="!loadingChar">

проблема решена! спасибо @rebelok нужно было добавить в конец функции с then вот это $scope.$digest(), что бы инициировать цикл

проблема решена. нужно было в навигации ui-sref-active="active" переименовать в ui-sref-active-eq="active". разница версий ангуляра. https://github.com/angular-ui/ui-router/issues/1314

Ilya
10.10.2016
13:12:32
Народ, кто с nginx дружит?

Нужно при открытии /guest/aaa/bb/cc (т.е. после /guest/ любое количество разделов) nginx подгружал контент страницы /guest/, но при этом в адресной строке все так-же оставался старый адрес. Это нужно для angular html5mode

Vlad
10.10.2016
13:19:39
всем привет

рабят

помогите с ивентами emit broadcast

Vlad
10.10.2016
13:23:33
в директиве не отрабатывает on

? ethorz
10.10.2016
13:31:18
в директиве не отрабатывает on
http://jsfiddle.net/smaye81/q2hbnL5b/6/

? ethorz
10.10.2016
13:32:39
http://stackoverflow.com/a/30001043

Dmitri
10.10.2016
13:37:15
Виктор
10.10.2016
13:37:21
У меня тоже работает

Dmitri
10.10.2016
13:37:48
посмотри в документации как параметры слать

Vlad
10.10.2016
13:38:24
делаю через компоненту, у нее есть контролер

Admin
ERROR: S client not available

Vlad
10.10.2016
13:43:30
в ng-init не хочет подписывать на бродкаст

MVP
10.10.2016
14:13:10
> @vladb9582 в ng-init не хочет подписывать на бродкаст не очень понятно. ошибка какая то падает или просто не всплывает событие ?

Google
Vlad
10.10.2016
14:13:27
просто не всплывает(

спасибо за помощь)

Дмитрий
10.10.2016
19:32:07
А теперь спрашивай ?

ExNihil14
10.10.2016
19:32:51
Сейчас, сначала традицию воблюду)

соблюду*

#whois I)Делаю админку, пока не работаю. II) Начинающий Front-end специалист III) Могу задавать интересные вопросы и в перспективе отвечать на вопросы других IV) Интересно предметом изучения V) Гомель(Беларусь) VI) Дали ссылку из группы pro.js

У меня есть нужда реализовать маршрутизацию с помощью ui-router, есть форма с валидацией, сама админка, с сайдбаром и ссылками на настройки, лист событий и списком предприятий. Подкажите, как лучше все организовать.

Дмитрий
10.10.2016
19:49:38
Ну какой-то слишком общий вопрос) Если ничего не понятно, то просто пробовать и спрашивать по ходу)

Каїн
10.10.2016
19:50:23
Органиструй по правильному

Михаил
10.10.2016
19:50:47
как минимум покажи дизайн

как это все выглядит

Max
10.10.2016
19:51:14
Народ кто пилит или пилил админки на ангуляре, почему много примеров админок, сделаны с левым меню что бы не было переходов назад?

Каїн
10.10.2016
19:51:31
Это выглядит как дерево

Где все начинается с app

тупой вопрос

создать переменную для всего апп

.constant создает только для модуля к которому ее написал

? ethorz
11.10.2016
10:39:33
сделай глобальную переменную просто в js)

Каїн
11.10.2016
10:39:52
выходит что это единствунный способ

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

Google
Каїн
11.10.2016
10:40:35
а без бандлера разве что в глобал

тем более если все файлы в самовызывающиеся фн обвенуты

да ну его

віходит аппКонфиг будет в паблике

seal разве что его еще для уверенности

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