Ответы пользователя по тегу JavaScript
  • Передача js кода или рендер на сервере?

    ozknemoy
    @ozknemoy
    яваскриптист
    если приложений всего пять то я бы не стал городить огород и разруливал бы все с помощью ngIf в зависимости от ответа с сервера. встречал компилятор аля $compile из первой части но он уже не тот что раньше
    Ответ написан
    Комментировать
  • Как извлечь только дату с учетом часового пояса (date 2017-06-21T18:00:00.000Z) в javascript?

    ozknemoy
    @ozknemoy
    яваскриптист
    сервер пускай считает UTC. на фронте брать отступ и делать что угодно var offset = (new Date).getTimezoneOffset()/60 это в часах
    Ответ написан
    Комментировать
  • Как отловить клик по одиночному option select-a?

    ozknemoy
    @ozknemoy
    яваскриптист
    повесить на option событие клик
    Ответ написан
  • Применения generator и promise?

    ozknemoy
    @ozknemoy
    яваскриптист
    побаловался в свое время генераторами для фронтенда. даже в продакшн сунул. и забыл про него. навсегда. сомнительной нужности вещь. ну а без промисов никуда
    через секунду вернет 4
    function getPromise() {
      return new Promise((resolve,fail)=> {
        // что либо асинхронное
        setTimeout(()=>resolve(4),1e3)
      })
    }
    
    getPromise().then((d)=>console.log(d))

    кто то возразит что генераторами можно и нужно последовательно разруливать несколько асинхронных запросов. для этого есть Promise.all
    Promise.all([
                httpFactory.get(`reward/${idReward}/view`)
                    .then(d=> {
                        this.reward = d.data;
                        this.term = dictFactory.termsDelivery[this.reward.delivery_rules].name;
                        this.reward.date = handleDataFactory.getIntervalDate(this.reward.send_date_from,this.reward.send_date_to);
                        // осталось наград
                        // sell_count == 0 это бесконечность наград
                        this.amountRewD=this.reward.sell_count-(this.reward.collected_count || 0)
                    }),
                httpFactory.getAuth()
                    .then(d=> {
                        // возвращает 'no' если нет регистрации или она устарела
                        //  под логином возвращает число денег на счету начиная от 0
                        this.isAuth = d.data;//===false? false:d.data;
                        // если фронт под логинон а сервер нет, то
                        if (this.isAuth == 'no' && authFront) userFactory._reLogin(true);
                    })
            ]).then(d=> {
                this.getAmountRewD()
            });
    Ответ написан
    Комментировать
  • Как подключить ionic приложение к апи или базе данных для работы с запросами?

    ozknemoy
    @ozknemoy
    яваскриптист
    так же как и любое rest.
    Ответ написан
    Комментировать
  • Есть такие JS фреймворки для фронтенда, что бы SPA и SEO?

    ozknemoy
    @ozknemoy
    яваскриптист
    если перспективно то только тяжеловесы в роде ангулара2/реакта/возможно vue. остальное угадалка и потом возможен вариант полной переписи приложения на ангулар/реакт/возможно vue. мы на последнем проекте использовали нод-ангулар4 стоящий за апачем + бэк yii2
    Ответ написан
  • Как работать с полями для ввода Angular2?

    ozknemoy
    @ozknemoy
    яваскриптист
    вы переназначаете #prix="ngModel" в цикле и что там у вас на выходе не понятно. один из вариантов достать значение f : f.value[nameOfSomeControl] надо пробросить саму форму и имя инпута в контроллер (nameOfSomeControl). а так как имя задается по индексу(name="{{i}}") то добавяем в инпут (ngModelChange)="onValueChange(f,i)

    <input *ngIf="i!==texts.length-1" type="text" name="{{i}}" ngModel  [id]="i" (ngModelChange)="onValueChange(f,i)">


    и обработчик в контроллере
    onValueChange(f.i) {
        this.valueChanged.emit(f[i]);
      }
    Ответ написан
    7 комментариев
  • Какой минимальный комплекс проектов в портфолио по Angular?

    ozknemoy
    @ozknemoy
    яваскриптист
    для реального опыта нужны реальные проекты. там всплывут все нюансы, подводные камни. навскидку что пригодится : написание директив/компонент(это обязательно),перехватчики запросов, кеш и возможно $templateCache, роутинг, обязательно формы со встроенными валидациями(+маски), бутстраповская модалка(там довольно интересная lazy load реализация), авторизация, сохранения в базу записей и тд. ну и новый js с вебпаком. без этого уже никуда. хотя и встречаются другие бандлеры.
    по поводу бекэнда я вообще не парюсь и посылаю. пускай ищут дальше. просто ангуларщиков найти трудно(мне например в вк периодически прелагают работу хотя не ищу) а чтоб еще и с каким то языком бека совпало, годами будут искать. про верстку по разному, довольно много где есть свои верстаки, я искал именно такое, в силу того что растерял навыки верстки
    Ответ написан
    1 комментарий
  • Как грамотно построить взаимодействие между компонентами в Angular2?

    ozknemoy
    @ozknemoy
    яваскриптист
    имхо если надо использовать взаимодействие между соседними компонентами структуру страницы стоит еще раз обдумать. не стоит сликом увлекаться разбиением всего и вся на компоненты. потом это трудно будет поддерживать
    Ответ написан
    Комментировать
  • Почему Restangular не подгружает данные?

    ozknemoy
    @ozknemoy
    яваскриптист
    console.log(self.posts) срабатывает раньше чем возвращается промис и показывает this.posts = []
    Ответ написан
  • Можно ли в angular сделать такую проверку куки?

    ozknemoy
    @ozknemoy
    яваскриптист
    я бы сделал проверку при смене состояния (страницы)
    работает с ui-router/ без него событие stateChangeSuccess называется по другому
    .run(function ($rootScope, cookieFactory) {
        'ngInject';
        $rootScope.$on('$stateChangeSuccess',  event =>{
    ...
        });
    })
    Ответ написан
    Комментировать
  • Ошибка при long polling ERR_EMPTY_RESPONSE?

    ozknemoy
    @ozknemoy
    яваскриптист
    так ответ же приходит. похоже что бек крайний
    Ответ написан
    Комментировать
  • Как запустить два контроллера?

    ozknemoy
    @ozknemoy
    яваскриптист
    надо сначала заново обдумать текущую архитектуру. имхо это костыль изначально. можно конечно сделать один маршрут и в нем сделать компонент, контроллер которого и будет подхватывать параметры из урла
    Ответ написан
    Комментировать
  • Как настроить серверный рендеринг Angular 1.5?

    ozknemoy
    @ozknemoy
    яваскриптист
    полноценного нет. есть только костыли для ботов (поисковых, соцсетей)
    Ответ написан
    Комментировать
  • Базовый набор веб-приложений на javascript, сделав которые будешь знать что-то про js?

    ozknemoy
    @ozknemoy
    яваскриптист
    задачки по js это хорошо, но только практика на реальном проекте продвинет дальше. начиная изучать новый фреймворк я беру типичные задачи из старых проектов и реализовываю на нем. вот это и будет отправная точка. типичные требования: получил данные с сервера, показал, обработал фильтрами(например отобразить список данных по убываню даты и тд). усложняя можно добавить авторизацию / логин, редактирование данных и посыл обратно на сервер. сервер разумеется не нужен. все это моками делать, отсыл на сервер достаточно выплевывать в консоль данные. ну и на последок то что будет кочевать из проекта в проект(приставку angular можно в расчет не брать):
    "angular-cookies": "~1.5.0",
    "satellizer": "~0.14.0",(это авторизация)
    "ngstorage": "~0.3.10",
    "angular-youtube-mb": "latest",
    "angular-ui-router": "^0.4.0",(это ток для SPA)
    "angular-rangeslider": "^0.0.14",
    "angular-ui-select": "^0.18.1"
    "angular-bootstrap-lightbox": "^0.12.0",
    "ng-videosharing-embed": "^0.3.4",
    "angular-recaptcha": "^3.0.4",
    "ng-file-upload": "^12.2.5",
    "oclazyload": "^1.0.9",
    "ng-img-crop-full-extended": "ngImgCropFullExtended#^6.0.1",
    "ngToast": "ngtoast#^2.0.0",
    "ng-directive-lazy-image": "afkl-lazy-image#^0.3.2",
    "owl.carousel": "^2.2.0",
    "angulargrid": "^0.6.3"
    "bootstrap": "xxx"
    на закуску можно подучить фреймворк. писать на чистом js или jq уже не модно и на самом деле геморно. если это не сайт визитка. вебпак можно ещё.
    Ответ написан
    Комментировать
  • Что выбрать для новых проектов из SPA framework как альтернативу для jquery?

    ozknemoy
    @ozknemoy
    яваскриптист
    некоторые критерии странноваты. ну да ладно. зачем селекторы? в больших приложениях этот треш не возможно поддерживать. джейквери и ванильный js пора отправить на отдых. на ES6 можно хоть лендинги писать на ваниле. ангулар 2 отпал(тайпскрипт и нет поддержки старых браузеров чтобы там не рассказывали разрабы + reactJS что в совокупе делает его значительно более трудным в освоении. да и тайпскрипт компил медленный, постоянные лаги вебшторма надоели, нужен очень шустрый комп. моего 4 ядерного 3200мгц и 8 гб оперативы мало. видимо i7 нужен). первый тоже(нет серверного рендеринга). реакт отпал из-за синтаксиса(+там убогий 1 way data binding). vue2 неплох, считай ангулар 1 с серверным рендерингом. свои темплейты повторяют обычный html. организация кода такая же модульная, если скачать готовый стартер а не примерчики с сайта делать. модулей/плагинов для него малова то. самому писать надо, что огромный минус. по документации все плохо у многих чтобы там не говорили. по первому ангулару неплохая, но устарела, зато огромное количество материала помимо доков. по двойке отвратительная хотя многие врут что хорошая. остается эмбер, но не пробовал. и главный вопрос не озвученый в пожеланиях. куда устраиваться работать со знанием vue, ember, aurelia? с ангуларом я без проблем устроюсь, еще и за мной охотиться будут. с реактом хуже дела обстоят, но все таки лучше чем с остальными перечисленными
    Ответ написан
    Комментировать
  • Как склеить 2 скрипта?

    ozknemoy
    @ozknemoy
    яваскриптист
    не понятно кто это должен делать. стандартными средствами JS не подходит?
    var script= document.createElement('script');
    script.innerHTML = /сам скрипт/;
    document.body.appendChild(script);
    Ответ написан
    Комментировать
  • Как подключить сторонний файл в браузерный javascript?

    ozknemoy
    @ozknemoy
    яваскриптист
    задать var base-url в общедоступной области видимости и потом от него прописывать все урлы: base-url + chunkUrl
    можно менять при деплое этот урл вручную. у меня несколько серверов и все это делает gulp. один раз сделал ему таск и не паришься что забыл поменять при заливе
    Ответ написан
    Комментировать
  • Как отрендерить статический HTML в webpack с шаблонизатором Handlebars?

    ozknemoy
    @ozknemoy
    яваскриптист
    Handlebars рендерится либо сервером , либо самим браузером
    Ответ написан