Запускаем Angular виджет в приложение без Angular

Очень маловероятно, что вы захотите добавлять Angular в приложение только для того, чтобы завести один компонент. Рекомендую смотреть на этот пост, не как на практическое руководство к действию, а как на работу по исследованию возможностей фреймворка.

Continue reading

Что нового в Angular 4.2

  • оператор не нулевого присвоения ( Non-null assertion operator ) теперь можно использовать в шаблонах:

    <h2>{{ user!.name }}</h2>
  • очень много изменений по анимации (смотрите в отдельном посте)
  • добавили поддержку mix & max стандартных валидаторов (но уже в 4.3.0-beta.0 удалили эту возможность признав как breaking change)
  • в тестах появились 3 вспомогательных метода:
    • TestBed.overrideProvider()приближает возможность тестировать в AOT,
    • flush() – для сбрасывания всех счетчиков и выполнения колбэков всех асинхронных операций,
    • fixture.whenRenderingDone() – возвращает промис, который ждет выполнения всех анимаций

JSFuck or how I love Javascript endless power

You can write your JS code without any alphabet character, seriously! I would say even more you can write your JS code only with 6! characters: []()!+

You could easily get several string like “true”, “false”, “undefined” and other by doing simple operations with brackets:

and now you can take any letter :

You can try to challenge yourself and convert any JS code into this format (that is called JSFuck) and there is even online converter that will help you with this task.

Изучаем Redux и пишем свой Mini-Redux

Предлагаю вам перевод статьи Learn Redux by coding a Mini-Redux.

Существует множество ресурсов по изучению Redux: официальная документация, примеры, учебники, статьи, видео уроки… Имея такое большое количество информации многие начинающие Redux разработчики порой просто теряются в ней.

Другой подход изучения – это самостоятельно написать прототип Redux, чтобы понять основы библиотеки. Для меня это был реальный прорыв.

Не беспокойтесь, это совсем не сложно. Ядро Redux, как вы убедитесь, достаточно просто.

Для начала нам необходимо общее понимание что делает Redux.

Continue reading

Angular + ES6 Promise

It would be really nice if we could use native ECMAScript 2015 Promises with Angular instead of $q service that is provided from box to be close to pure JavaScript:

[javascript]
//somewhere inside component controller
let promise = new Promise((resolve) => setTimeout(() => resolve(‘resolved’), 2000));
promise.then(x => this.x = x);
[/javascript]

But in this case we will have to run digest manually for each resolve(to synchronise view and model):

[javascript]
let promise = new Promise((resolve) => setTimeout(() => resolve(‘resolved’), 2000));
promise.then(x => {
$scope.apply();
this.x = x;
});
[/javascript]

But what if we hack the Promise and intercept our digest call there:

Continue reading

ui-router: Deprecated events and hooks

If you are using latest version of ui-router (now it’s 1.0.0-alpha) you probably already noticed that there are no events that we all got used to: $stateChangeCancel,  $stateChangeError, $stateChangeStart$stateChangeSuccess$stateNotFound. All of them are deprecated in 1.0.0-alpha.3 and you can not use them anymore in 1.0.0-alpha.5.

If you want to move to new version of ui-router you should make such changes:

Continue reading