Rem1te
в общем надо более реальный код что бы подсказать
Sheridan
да я уже по другому сделал. Собрал список ключей, по которым точно будут изменения и их присваиваю
Rem1te
Будьте аккуратны с таким переприсваиванием потому что если someFunction(baz) { var a = baz; } var foo = { bar: {}, baz: {}, } someFunction(foo.baz); foo.baz = { test: 'test'}; То вот там внутри someFunction, а навсегда будет связано со значением которое лежало в foo.baz до того как туда присвоили новое значение
Sheridan
нууу..... Следи за руками foo = {bar: {aaa: 123}} func(v) { v.aaa = 321; } func1(v) { v = { bbb: 555 }; } func(foo.bar); console.debug("1", bar); func1(foo.bar); console.debug("2", bar); Как ты думаешь в логах 1 и 2 что будет? )
Sheridan
подправил
Rem1te
ну это то о чем я говорю как раз :) в обоих случаях будет ааа: 321
Rem1te
но это не страшно когда переопределение происходит внутри функции
Rem1te
другое дело если ты кинул значения в контроллер, потом в сервисе его обновил, а в контроллере оно по прежднему старое
Rem1te
и ты такой О.о
Sheridan
понимаешь ли. из за промайзов нельзя построить линейный алгоритм
Sheridan
приходится через ссылки значение устанавливать
Sheridan
и тут тоже засада
Rem1te
вай нот?
Sheridan
вроде бы ссылка
Sheridan
но вот хрен
Rem1te
есть всякая магия типа Promise.all
Rem1te
или async/await
Rem1te
я точно могу сказать что делать хттп запросы в цикле не лучшая идея :)
Sheridan
вай нот?
всмысле? Ну уберите return вообще из языка, нафига они с таким отношением? )))
Rem1te
это почти как базу в цикле дрочтиь :)
Rem1te
всмысле? Ну уберите return вообще из языка, нафига они с таким отношением? )))
речь о другом, джаваскрипт не умеет в синхронность выполняемого кода, потому что у него нету потоков
Rem1te
у тебя на все про все 1 поток
Rem1te
ты не можешь просто так взять и заставить джаваскрипт ждать окончания асинхронных действий
Rem1te
точно так же как ретёрн из сеттаймаута, это ретерн в никуда
Sheridan
у тебя на все про все 1 поток
я в курсе основной засады жаваскрипта )
Rem1te
это просто небольшой ликбез по поводу "убери ретёрны они ненужны" в принципе если мы говорим о возвращении данных из асинхронного кода в синхронный - то да они не нужны :)
Давид
Привет всем angular.element($window).on('resize') - работает но angular.element('body').on('resize') - нет мне надо сабите для body от чего может быть ?
Rem1te
У боди нет ивента ресайз
Anton
ребята, у меня есть такой шаблон : <input class="form-control" typeahead-select-on-blur="true" id="search_query" type="text" ng-model="channel" placeholder="@channel" > <button ng-mousedown="" ng-disabled="sending" ng-click="sendMessageToChannel()" class="btn btn-primary"> <span class="fa fa-paper-plane"></span> <span class="hidden-xs">{{:notifierTranslate:'Отправить'| translate}}</span> </button> и почему-то, когда я нажимаю на кнопку отправить, $scope.channel всегда равен пустой строке ( я так задал при создании, то есть $scope.channel = ‘’;
Anton
почему такое может быть ?
Anton
я думал, что с контроллером что-то не то, но метод, который на кнопке вызывается нормально
Anton
может проблема в том, что я открываю это через модалку var uibModalInstance = $uibModal.open({ templateUrl: 'app/modules/telegram-channel/view/telegram_post_modal_form.html', controller : 'TelegramChannelModalCtrl', size : 'lg', backdrop : 'static', windowClass: 'task-modal-window mobile-summerNote-fullscreen-edition', }); и ng-model не апдейтит значения в контроллере
Anton
а как это пофиксить?
Sergey
https://angular-ui.github.io/bootstrap/#!#modal
Sergey
Посмотри там
Sergey
Как передавать в модалку и как из неё забирать данные
Anton
а вопрос: я так понимаю resolve { data: $scope.data } передаст $scope.data в контроллер модалки, а как мне в модалке записать данные в эти переменные, чтобы они изменились в родительском контроллере?
Anton
Вообще, я просто не понимаю, вроде же должна менятся модель в контроллере модалки, если я вписываю что-то в инпут, но она не меняеется, я почитал, но не въехал чет
Sergey
$uibModalInstance.close($ctrl.selected.item);
Sergey
Это передать в промис модалки значение
Sergey
modalInstance.result.then(function (selectedItem) {
Sergey
Это уже в контроллере, забрать его
Sergey
Если передавать через resolve, то в контроллере модального окна данные будут доступны в inject
Anton
В контроллере модального окна не меняется биндинг?
я не делал биндинг. На самом то деле мне даже не нужно ничего передавать, в parent контроллер, мне просто нужно чтобы менялась модель в child-контроллере, который обслуживает модалку, в нем вся логика прописана, но модель не меняется.
Sergey
Ну не факт что она туда по ссылке уходит
Sergey
Я в общем ничего не понял)
Sergey
Давай пример в песочнице, так непонятно
Anton
ну смотри, есть main контроллер. в нем есть метод $scope.showForm = function () { var uibModalInstance = $uibModal.open({ templateUrl: 'app/modules/telegram-channel/view/telegram_post_modal_form.html', controller : ‘childCtrl’, size : 'lg', backdrop : 'static', windowClass: 'task-modal-window mobile-summerNote-fullscreen-edition', }); } он, соответсвенно открывает модалку, которую обслуживает childCtrl, надеюсь, пока ясно. Дальше открывается модалка, там есть инпут <input ng-model=‘text’ type=‘text’> к нему привязана модель text, которая опеределенна в контроллере childCtrl, по идее, если бы это бы не была модалка, а самый обычный шаблон страницы, то когда я вписывал бы что-то в инпут, то значенее бы менялось и в моделе, которая в контроллере, но в случае с модалкой у меня ничего не меняется, как я определил в childCtrl, что $scope.text = ‘’ так она даже после ввода в инпут остается равной пустой строке. Как это пофиксить?
Sergey
Хз, у тебя там $scope, без изоляции
Sergey
Всё должно работать в модалке точно так же как не в модалке
Sheridan
чтото меня ангуляр в тупик загнал.... load_projects(projects) { console.debug('projects dump', projects); http.post('/loader.php', { type: 'foo', projects: projects }) .success((data) => { this.data = data; }); } в консоль выводит список, всё верно. В бэкенд приежжает словарь. type верный, а projects - пустой о0
Anton
Всё должно работать в модалке точно так же как не в модалке
кстати, если я пишу, что $scope.text = ‘some text’, то и value в input становится равно значению ‘some text’, но в обратную сторону это не работает
Sergey
on-change
Так он же после изменения модели вызывается
Sheridan
а ты об ng-model вливаешь или в тег сразу?
Sheridan
ну тогда должно работать
Sheridan
смотри в консоль, дебаж...
Anton
я в шоке, от чего такое может быть, методы работают нормально
Anton
и главное же выводятся значения в инпут
Sheridan
жаваскрипт, туды её в качель. Вот и я ща со схожей проблемой сижу...
Sergey
жаваскрипт, туды её в качель. Вот и я ща со схожей проблемой сижу...
У тебя там что-то с биндингами на бэке, если в браузере видно что всё норм уходит
Sergey
Может быть он ожидает массив например в form кодировке
Sergey
Ну не совпадают его ожидания с форматом того что ты отправляешь, вот он для ссылочного типа и ставит дефолт null
Sergey
По крайней мере у меня это 90% такого, ещё имена полей бывает)
Sheridan
ну как бы я слабо себе представляю как может быть что половина приехала, потловину по дороге растеряли. Массив то приезжает. Поля названы верно, в первом поле значение верное. Второе поле - пустое, точнее пустой массив
Sergey
Ну как, что смог распарсить то присвоил, что не смог - дефолт
Sergey
Там null массив? Или пустой?
Sergey
Может что-то с самим проектами
Sheridan
Может что-то с самим проектами
console.log говорит что норм там высё )
Sergey
Значит сами проекты не распарсились
Sergey
А если не через консоль смотреть, а через Network в браузере?
Sergey
https://stackoverflow.com/a/16276375
Sergey
Нг не умеет сериализовать массивы
Anton
знаете как пофиксил?
Sergey
Зачем люди на нём пишут >.<