Pull to refresh

Comments 7

Нектопост какой-то. Если и брать первую версию, то 1.5, там много хороших нововведений. Ну а по-хорошему, второй версией спокойно можно пользоваться уже сейчас. Лучше напишите, как мигрировать с 1-й на вторую.

А я поясню логику, почему опубликовал:


1) В 1.5 практически нету breakes changes, все они находятся в версиях 1.3-1.4, а мигрировать с 1.2 на 1.5 как-то надо, поэтому актуальность тема сохраняет. Объём фич так же в последней версии намного меньше, а описать предыдущие стоило.
2) Ну чего статье пропадать, коль уж была написана, даже если поможет одному человеку — уже хорошо :)


Миграцию я описывал не потому, что мне делать нечего, а потому, что у меня большой опыт миграции достаточно крупных проектов с кучей legacy кода, этим опытом я хотел поделиться. Касательно второй версии у меня пока такого опыта (увы) нет.

Мне тема актуальна, большое спасибо за статью.
в современных браузерах это около 10 милисекунд)


Какие-то цифры из головы. Читаем что такое event loop и понимаем что никакого «фиксированнго» значения по времени мы не получим.

setTimeout(() => { console.log('в современных браузерах это около 10 милисекунд'); }, 0);
while(true) {
    // хахаха
} 


По сути вся важность $applyAsync — это то что наконец-то не нужно проверять, не запущен ли еще кем-то $digest цикл.

С версией 1.4 был добавлен ещё более удобный синтаксис:


А еще стоит заметить что хелпер компонентов доступен в качестве полифила для angular 1.3. Ну это я к тому что бы еще более ускорить переход на ng1.5 и забыть о $scope как о страшном сне. Ваш пример по итогу записывается как:

// да да, 2016-ый год на дворе
class SomeComponent {
   $onInit() {
       this.updateFullName();    
   }

   set name(value) {
       this._name = value;
       this.updateFullName();
   }

   updateFullName() {
       this.fullName = `Component name: ${this._name}`;
   }
}

app.component('someComponent', {
    template: `
         <div>{{$ctrl.fullName}}</div>
    `,
    bindings: {
       'name': '='
    },
    controller: SomeComponent
});


контролер получился относительно здоровым что бы в биндингах был смысл. А то у вас оно как-то… не смотрится. Ну и пример как обойтись без ватчеров.
Какие-то цифры из головы. Читаем что такое event loop и понимаем что никакого «фиксированнго» значения по времени мы не получим.

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


Сторонние компоненты и полифиллы я намеренно не рассматривал, только то, что идёт из коробки. Спасибо что дополнили примером.

То неловкое чувство, когда сделал весьма немало проектов на Angular, знаешь его плюсы и минусы, а про $httpProvider.useApplyAsync слышил впервые.
Sign up to leave a comment.

Articles