Из последнего поста я показываю, как создать приложение с angular2 и маршрутизацией, используя angular-cli. В этом посте я добавлю сервисы, внедрение зависимостей и директивы, также используя angular-cli
Исходный код
Полный исходный код доступен на GitHub:
https://github.com/Pabloin/mean-stack-talk
Начнем
Работающее приложение и проект
Приложение работает
Шаг 01: Добавьте класс (модель)
Давайте добавим класс, также упоминаемый как модель:
$ ng generate class services/user.model
мы видим, что это всего лишь немногое, что делает команду ng для нашего класса… давайте добавим все остальное с помощью редактора атомов:
Мы также начали использовать директивы, в данном случае *ngFor, чтобы выполнить итерацию по фиктивному пользовательскому массиву, результатом будет
мы должны добавить сообщение, когда пользовательский массив пуст, и в этом случае *ngIf с:
<tbody *ngIf="users.length"> <tr *ngFor="let user of users"> <th scope="row">{{ user.id }}</th> <td>{{ user.firstName }}</td> <td>{{ user.lastName }}</td> <td>{{ user.userName }}</td> </tr> </tbody> <tbody *ngIf="!users.length"> <tr> <th scope="row" colspan="4">no user!</th> </tr> </tbody>
Шаг 02: Добавьте услуги (модель)
Первый вариант — генерировать сервисы с помощью команды angular-cli:
$ ng generate service <path-to-service/name>--flat
: "--flat false" to indicate if a dir is created--spec
specifies if a spec (testing file) file is generated--module
(-m
) allows specification of the declaring module $ ng generate --help service
Давайте воспользуемся им для создания сервиса data с классом тестирования ( — spec), и нам не нужны «плоские» компоненты: нам нужны каталоги
Let´s generate a dir “services” with the services inside: “services/data” $ ng generate service services/data --flat true --spec true or the same is: by default is flat and generate spec file $ ng generate service services/data
Давайте добавим встроенный код для вставки данных из сервиса во внешний интерфейс:
И у нас тот же результат, мы получаем данные, но на этот раз от сервиса:
Мы видим, что мы установили провайдера: [DataService] в модуле компонента @, это позволяет внедрить зависимость. Мы можем найти провайдера в @ngmodule с тем же результатом.
На этом я закончу пост, тэг и исходный код находятся на GitHub:
Хорошо, на этом пост закончился, я увидел, как использовать сервисы в Angular и кое-что с внедрением зависимостей, а также я использовал несколько директив.
Следующим может быть соединение фронта с бэкендом, получение данных из базы данных mongo DB. Конечно, мы не обращаемся к базе данных напрямую, но через API Rest… это часть IV, скоро увидимся.
Ссылки
Хорошее видео об angular2, похожее на этот пост, от Jhon Papa на ngConf (https://www.youtube.com/watch?v=WAPQF_GA7Qg&t=143s)