Можно ли генерировать сервисы для Angular2 из Loopback?

Вот документация по AngularJS JavaScript SDK

Этот пример отлично подходит для Angular. Можно сгенерировать клиентскую библиотеку Angular командой

$ lb-ng ../server/server.js js/lb-services.js

Существует ли такой же простой способ использовать Angular2 с Loopback?

РЕДАКТИРОВАТЬ

Что я нашел на эту тему в настоящее время.

  1. Проблема в loopback-sdk-angular репозитории Github с обсуждением.
  2. Пример реализации: BaseResource и Model, привязанные к BaseResource.
  3. И еще один способ - использовать обновление с Angular до Angular2 до официальной реализации Loopback Angular 2 SDK.
  4. Я сделал альфа-версию генератора кода для Angular 2 в ответвлении loopback-sdk-angular.

РЕДАКТИРОВАТЬ

  1. Loopback-SDK-строитель( комментарий)

1 ответ

Решение

На данный момент вы можете использовать fork пакетов loopback-sdk-angular и loopback-sdk-angular-cli.

package.json:

"devDependencies": {
  //...
  "loopback-sdk-angular": "github:qeti/loopback-sdk-angular#188-angular2-support",
  "loopback-sdk-angular-cli": "github:qeti/loopback-sdk-angular-cli#37-angular2-support"
}

Генерация клиентского кода (TypeScript):

./node_modules/.bin/lb-ng ./server/server.js ./client/src/app/lb-services.ts -l angular2

Пример использования:

import {Component,Injectable} from 'angular2/core';
import {UserApi as UserService} from './lb-services';
import {HTTP_PROVIDERS} from 'angular2/http';

@Component({
  selector: 'my-app',
  providers: [UserService,HTTP_PROVIDERS],
  template: 'some template'
})

@Injectable()
export class AppComponent {

  private login: string;
  private password: string;

  constructor(protected user: UserService) {}

  onLogin() {
    let self = this;
    // Example 1
    this.user.login({
      username: self.login,
      password: self.password
    })
    .subscribe(res => {
      // some actions on login
      this.getData();
    });
  }

  onLogout() {
    // Example 2
    this.user.logout().subscribe(() => {
      // some actions on logout
    });
  }

  public getData() {
    // Example 3
    this.user.count().subscribe((response: any) => {
      let lastRow = response.count;

      let data = this.user
        // Example 4
        .find({
          offset: 0,
          limit: 100
        })
        .subscribe(function(response: any) {
          // Process response
        });
    });
  }
}
Другие вопросы по тегам