0

こんな感じのサービスがあったら

import {Injectable} from 'angular2/core';

@Injectable()
export class MyService {

  search(oSrchParams){

    let promise = () =>
    new Promise((resolve, reject) =>
      Meteor.call('mockSearchWS', (error:any, result:any) => error ? reject(error) : resolve(result))
    );

    promise().then(
      (result:Array<Object>) => {
        return result
      },
      (error) => {
        console.log('failed', error);
      }
    )
  }
}

注入されたときにそれを呼び出して値を取得するにはどうすればよいですか? このような:

import {Component} from 'angular2/core';
import {MyService} from './my-service';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';

@Component ({
  selector: 'search',
  providers:[MyService]
})

export class App {
  items: Array<string>;
  constructor(private myService: MyService) {
 }

 search(term) {
    // this.myService.search(term).then(items => this.items = items);
    // this.myService.search(term).subscribe()
  }
}

サービスが観測可能かどうかはわかりません。私が見たほとんどの例では、http を使用しています。

4

2 に答える 2