Aves: Я не говорю, что глобальная переменная это хорошо и полностью согласен с тем, что это антипаттерн. Но вопрос ведь не в этом. Ваш метод тоже хорош. Но при создании большого количества инстансов единственным плюсом этого подхода (по сравнению с глобальным хранением ссылок на иснтансы или флагов) будет как раз изоляция этих ссылок внутри замыкания. Память будет одинаково израсходована в обоих случаях и GC не сможет ее вернуть до тех пор, пока будут привязаны обработчики. Если уж совсем серьезно говорить об этом. Но Ваш вариант действительно выглядит лучше.
Koreetz Koreetz: Хммм, я подозреваю, что у вас выставлено какое-то статичное значение свойства top у этой формы. Поэтому она всегда остается на одном месте, а форма слева занимает крайнее верхнее положение совершенно правильно.
Koreetz Koreetz: Так, давайте разберёмся "Но если выбрать нажать на кнопку в другой форме то оно смещается вниз". Вы пишете, что это другая форма. Я так понимаю, что физически это всё-таки разные блоки, которые размещены друг под другом, разве нет?
Aves: Объявление var modal; это и есть глобальная переменная, в которой потом сохраняется ссылка на иснтанс компонента, затем props меняются напрямую и это боль. Или вы говорите о другом коде?
Алексей Тен: Во-первых, когда я писал ответ, в вопросе не было секции, про то, какой тип должен возвращаться в рещультате выполнения функции. Во-вторых, в коде нет ничего бредового. Да, функции, не особо полезны с точки зрения функционала, но это всё, что можно сказать, не зная контекста, в котором код должен работать.
Приведите пожалуйста рабочий кусок кода, на данный момент ничего не понятно совершенно, кроме идентификатора objectToCart. Конкретно интересует то, объекты какого типа хранятся в массиве newOb и по какому признаку вы их фильтруете
Алексей Тен: Соглашусь, что так можно написать. Я отвечал на поставленный вопрос в общем-то. Переписать код этого класса можно огромным количеством способов, всё зависит от задачи
Денис Букреев: Как понять игнорируются? Вы передаете именно так modal.open(() => this.openSlider()). То есть внутри стрелочной функции вы вызываете this.openSlider(), а не передаете в нее ссылку на объект функции this.openSlider?
Николай: А не могли бы вы ткнуть в какую-то статейку, в которой показывается работа с DOM без $scope.apply() и $scope.watch в контексте 1.5 компонентов (именно компонентов, а не директив)? Не так давно пришлось делать интеграцию с bootstrap datetimepicker - заставить это дело работать, используя компоненты, не получилось. Завелось только директивой с apply и watch
yazux: Хотел написать, про хэши и это всё, но увидел, что были уже мысли. Если не секрет, то не могли бы вы сказать в чем собственно сложность создания дополнительных структур для работы с данными. Поиск по массиву объектов - задача очень сложно оптимизируемая, хоть вэб-воркерами, хоть чем угодно. Да, это приведёт к дополнительному расходу по памяти, но ведь вы могли бы декомпозировать данные по отдельным коллекциям и, при необходимости, собирать из них наборы какого угодно вида. Понятно, что идея капитанская, но мне не понятен этот подход с желанием оптимизировать работу с моснтр-коллекцией, всеми доступными способами, которые несут в себе кучу других проблем и поднимают сложность решения (опять же веб-воркеры), вместо использования базовых бассивов с примитивами и хэш таблиц, операции с которыми выполняются очень быстро и логика таких операций линейна
Konstantin Kudelko: Версия Angular не связана с ES6/Typescript. Typescript это я от себя предложил, а вот ES6 сейчас использовать с Angular никаких проблем не составит. Вот к примеру starter-kit, с первоначальной настройкой - https://github.com/AngularClass/NG6-starter. В официальной документации angular рекоммендуется всё приложение представлять в качестве дерева компонентов с Input'ами и Output' ами. Таким образом вы 1) сделаете компоненты изолированными, без развлекух со скоупами 2) вам будет в будущем комфортнее осваивать React и Angular 2, которые целиком на идее компонентов и завязаны
Flawming: Да все правильно - обязательно нужно писать, чтобы разобраться. Просто сейчас Angular есть скорее всего только в Single Page Applications (хотя мб есть бородатые проекты, которые его только для упрощения интерактивности используют). В любом SPA, как это не удивительно, особняком стоит его взаимодействие с серверным API. В своем ответе я имел в виду то, что после изученя основ, понимания скоупов и того, как отобразить Helloworld необходимо всё-таки изучить механизм работы services в Angular. И кстати советую сразу начать с компонентного подхода с ES6/Typescript, чтобы было проще разбираться Angular 2 и React потом
passerby, Tenebrius : Видимо я не совсем четко ответил на вопрос. Я не имел в виду, что Leaflet это серверный движок, который сможет из коробки сделать это всё. Имелось в виду, что для связки карты, нарезанной из тайлов на клиенте он подойдёт. Полнофункциональных движков с нарезкой я не знаю