Ответы пользователя по тегу JavaScript
  • AngularJS как добавить значение?

    ozknemoy
    @ozknemoy
    яваскриптист
    не совсем понятен вопрос. но попробую

    <h2>Эр = {{someVar=(data.Tr * data.k * thr  * data.q * data.a * data.b)}}</h2>
    <h2>tчр = {{thr = (data.Oi * data.kt / 167 | number : 3) }} руб.</h2>эта переменная учитывает округление иначе:
     h2>tчр = {{thr = (data.Oi * data.kt / 167) | number : 3 }}
    Ответ написан
    Комментировать
  • Есть ли альтернатива React?

    ozknemoy
    @ozknemoy
    яваскриптист
    посмотрел, потрогал, не понравилось. после модульности ангулара1 для меня это джейквери анархия. как поддерживать громадное приложение не понятно. для небольших сайтов думаю пойдет. хвастают его малым размером . но за те 2 дня что я погрузился в него, я подключил еще несколько либ. обычно когда похвастать нечем начинают что то придумывать. типа на западе небо голубее и реклама красочнее. альтернатива это ангулар 1(сказки про его старость и медленность оставим гомнокодерам которые любой язык заставят работать плохо), но не двойка, с двойкой борешься с платформой а не продуктом. плюс еще можно добавить vue2. понравился значительно больше ангулара 2, многое ребята стащили с первого ангулара, плюс там можно запросто подключать jquery либы и пререндерить серверной нодой
    Ответ написан
    Комментировать
  • Максимальная оптимизация приложения на angularjs + localStorage, ваше мнение?

    ozknemoy
    @ozknemoy
    яваскриптист
    у ангулара есть свой cacheFactory. внутри фабрики:
    var httpFactory = {},
            cache = $cacheFactory.get('$http');
    
    httpFactory.getInterest = function () {
            return getWithCache('ref/user-interest')
        };
    function getWithCache (url) {
            var mycache = httpFactory.getCache(baseUrl+url);
            if(mycache) {
                const _mycache =  angular.copy(mycache);
                var deferred = $q.defer();
                deferred.resolve({data:JSON.parse(_mycache[1])});
                return deferred.promise
            }
            else return $http.get(baseUrl+url, {cache: true})
        }

    дергаю из контроллера getInterest . первый запрос с сервера, второй и последующие из кеша. при перезагрузке приложения разумеется кеш нулевой
    Ответ написан
  • Как в Angular2 отобразить картинки полученные из запроса с Content-Type: application/image?

    ozknemoy
    @ozknemoy
    яваскриптист
    конструктор блоб не кросбраузерен, если это не смущает(а должно) то его можно преобразовать в base 64 который можно пихать в src фотки

    var reader = new window.FileReader();
     reader.readAsDataURL(blob); 
     reader.onloadend = function() {
                    base64data = reader.result;                
                    console.log(base64data );
      }
    Ответ написан
    Комментировать
  • Как сделать livereload на Angular Universal приложении?

    ozknemoy
    @ozknemoy
    яваскриптист
    работает немного коряво но работает. в мануале можно уточнить что да как там
    var LiveReloadPlugin = require('webpack-livereload-plugin');
    // в плагины добавить
    new LiveReloadPlugin({
            appendScriptTag : true
        })
    Ответ написан
    Комментировать
  • Как запустить Angular Universal чтобы не хотелось кинуть камень в того, кто это придумал?

    ozknemoy
    @ozknemoy
    яваскриптист
    пользую universal-starter месячной давности полет нормальный
    Ответ написан
  • Как правильно мигрировать на другую версию AngularJS?

    ozknemoy
    @ozknemoy
    яваскриптист
    больших подводных камней нету. вот то что я у себя добавил с версии 1.5.8
    $qProvider.errorOnUnhandledRejections(false);//for fix 4 errors in angular 1.6
        $compileProvider.commentDirectivesEnabled(false);//for angular 1.6
        $compileProvider.cssClassDirectivesEnabled(false);// надо сначала удалить директиву ui-view в классе
    $compileProvider.preAssignBindingsEnabled(true); //todo for angular 1.6

    в доках все описывается зачем это. плюс мои комменты
    Ответ написан
    Комментировать
  • Где можно закрепить тонкости языка JavaScript?

    ozknemoy
    @ozknemoy
    яваскриптист
    можно конечно выпускников вузов потестировать на знание этой ерунды выше. но в проде то как это пригодится?
    Ответ написан
    3 комментария
  • Что такое bindings в компонентах AngularJS?

    ozknemoy
    @ozknemoy
    яваскриптист
    это просто аналог scope который в директивах
    one-way : '<'
    interpolation : '@'
    и callback в родителя : '&'
    Ответ написан
    Комментировать
  • Как сдедать промотку на 30px ниже?

    ozknemoy
    @ozknemoy
    яваскриптист
    повесить слушателя на клик по элементу и скормить ему функцию
    function scrollTo (id) {
            var y = $('#'+id).position().top;
                y = y+30;
            scrollTo(y, 800);
            //тут клик по табу $('a[href=\'#specification\']').trigger('click');
        };

    id это цель. y это расстояние от верха страницы до цели + 30px
    scrollTo это кастомная функция прокрутки. если нет своей, то вот код с requestAnimationFrame :
    Math.easeInOutQuad = function (t, b, c, d) {
            t /= d/2;
            if (t < 1) {
                return c/2*t*t + b
            }
            t--;
            return -c/2 * (t*(t-2) - 1) + b;
        };
    var requestAnimFrame = (function(){
            return  window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function( callback ){ window.setTimeout(callback, 1000 / 60); };
        })();
    
        function offsetPosition(element) {
            var offsetLeft = 0, offsetTop = 0;
            do {
                offsetLeft += element.offsetLeft;
                offsetTop  += element.offsetTop
            } while (element = element.offsetParent);
            return [offsetLeft, offsetTop]
        }
    function scrollTo(to, duration, callback) {
            if(!to) return;
            // если передаю ид элемента а не число
            if(typeof to === 'string') {
                to = offsetPosition(document.querySelector(to))[1]
            }
    
            // because it's so fucking difficult to detect the scrolling element, just move them all
            function move(amount) {
                document.documentElement.scrollTop = amount;
                document.body.parentNode.scrollTop = amount;
                document.body.scrollTop = amount;
            }
            function position() {
                return document.documentElement.scrollTop || document.body.parentNode.scrollTop || document.body.scrollTop;
            }
            var start = position(),
                change = to - start,
                currentTime = 0,
                increment = 20;
            duration = (typeof(duration) === 'undefined') ? 500 : duration;
            var animateScroll = function() {
                // increment the time
                currentTime += increment;
                // find the value with the quadratic in-out easing function
                var val = Math.easeInOutQuad(currentTime, start, change, duration);
                // move the document.body
                move(val);
                // do the animation unless its over
                if (currentTime < duration) {
                    requestAnimFrame(animateScroll);
                } else {
                    if (callback && typeof(callback) === 'function') {
                        // the animation is done so lets callback
                        callback();
                    }
                }
            };
            animateScroll();
        }
    Ответ написан
    Комментировать
  • Где взять gulp скрипты для разработки angular-приложения с модулями?

    ozknemoy
    @ozknemoy
    яваскриптист
    можно глянуть на гите NG6-starter-master или NG6-todomvc-starter или другие сборки у того же автора ( https://github.com/AngularClass/NG6-starter/blob/m... ) и допилить их под себя. есть ещё yeoman angular. templateCache реально увеличивает быстродействие? думаю попробовать его, но не очень хочется увеличивать время первичной загрузки
    Ответ написан
    Комментировать
  • Табы на css не разворачивают слайдер ( только после изменения ширины ) как исправить?

    ozknemoy
    @ozknemoy
    яваскриптист
    предположу
    1. при инициализации карусели когда задается ширина каждого элемента то берется очень маленькая ширина всей карусели(потом делится на количество элементов). а при смене ширины окна responsive функция слайдера пересчитывает карусель заново. была похожая фишка с owl carousel. она тупо считает ширину всего окна, не учитывая отступы слева и справа. у тебя они тоже есть. поройся в доках. возможно есть функция выставления основного контейнера для расчета. по умолчанию похоже берет window
    2. карусель выставляет сразу все элементы для показа, а потом только лишь 4 как и должно быть. опять таки функция responsive косячит
    Ответ написан
    Комментировать