Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 11

Для понимания этих гайдов нужен самый минимальный уровень английского. Стоило ли переписывать то же самое(тем более, что различных гайдов разного уровня по Angular 2 под TypeScript пруд пруди)?

А вот структурированной подробной информации по Angular 2 под JavaScript особо и нет, с удовольствием почитал бы такую статью, пусть и на английском.

P.S. Перевел обзорную часть по архитектуре Angular 2, переделав примеры под ES5: Angular 2 in JavaScript. Также реализовал поэтапно туториал «Tour of Heroes» на ES5: JavaScript реализация Tour of Heroes. Надеюсь, кому-то поможет :)
Спасибо за отличные переводы на русский и ES5. Только вот в сервисе героев (HeroService) из «Angular 2 in JavaScript» используются промисы. Это же вроде ES6. Чем это можно заменить? Нужна поддержка IE10.
Чем это можно заменить?

Observable. Собственно, в ангуляре же Http сервис теперь возвращает не промисы, а Observable из RxJS. А для es6 промисов можно полифил подключить.

Рад, что Вам понравилось. Момент с Promise: на самом деле он не нужен в этом туториале, он скорее для того, чтобы показать, что сервисы также используются для получения удаленных данных. Так что почти честно :)

Чем заменить? Поискать библиотеки, либо реализовать самому. По идее, вещь не сильно сложная.

З.Ы. Только приступаю к изучению JavaScript, прошу сильно не пинать.
Можно просто подключить полифил bluebird с реализацией промисов на ES5
Полу-машинный перевод без учета лингвистических особенностей обоих языков… При переводе тех. статей — бессмысленный и беспощадный.

Возьмем из статьи класс Hero. Допустим, мы хотим иметь возможность сохранять героя в базе данных на сервере. Добавим герою метод save(), который для сохранения героя использует Angular-сервис Http. Каким образом должен резолвится этот (Http) сервис в классе Hero, чтобы была возможность использовать следующий подход?


var hero = new Hero();
hero.name = 'Windstorm';
hero.save();
Добавим герою метод save()

Такие вещи лучше вынести в отдельный сервис. Тут Hero — это DTO, у него нет поведения.


Каким образом должен резолвится этот (Http) сервис в классе Hero

Что подразумевается под этим? Какой коллбек в then засунуть? Ну если уж и идти по такому сомнительному пути, то нужно просто обновить поля Hero новыми значениями.
Да и нынче методы Http не возвращают промисы, их заменили Observable-объекты.

Извините, прикрепилось отдельной веткой ниже.

Такие вещи лучше вынести в отдельный сервис.

Имеете в виду сделать сервис типа HeroSaver? Писать что-то вроде:


var hero_saver = injector.get(HeroSaver);
var hero = new Hero();
hero.name = 'Windstorm';
hero_saver.save(hero);

Тут Hero — это DTO, у него нет поведения.

Да, но, допустим нужно реализовать поведение, например, как в Django.


hero = Hero(name="Windstorm")
hero.save()

Что подразумевается под этим? Какой коллбек в then засунуть?

Каким образом правильно было бы получить сервис Http в объекте класса Hero, чтобы реализовать функционал save? Как пример реализации:


class Hero {
  http:Http;
  constructor(injector:Injector) {
    this.http = injector.get(Http);
  }
  save () {
    this.http.post.....
  }
}
....
var hero = new Hero(injector);
hero.name = 'Windstorm';
hero_saver.save(hero);

Правильнее — делать через внедрение зависимостей, никаких injector.get. В джанге внедрения нет, поэтому там по-другому.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации