Прямо сейчас я думаю о двух вариантах: первый, чтобы вернуть вызов сервера и подписаться на него в вашем компоненте или иным образом, чтобы вернуть обещание.
Первый вариант:
В вашем компоненте:
public getItems()
{
this.productService.getAllProducts().subscribe((products: Array<any>) => {
this.items=[
count: products ? products.length : 0;
]
});
}
Второй вариант:
товар .service.ts
getAllProducts(): Promise<any[]> {
return this.http.get('YOUR_URL').toPromise();
}
Ваш звонок будет выглядеть следующим образом.
public getCountofProducts() {
return this.productService.getAllProducts().then
(
(products) => {
if (products!= null) {
this.productsLength = products.length;
return this.productsLength;
}
}
);
}
И в вашем компоненте:
public getItems()
{
this.getCountofProducts().then((len:number) => {
this.items=[
count: len
]
});
}
Используя API Карт Google или Microsoft MapPoint API, это очень легко сделать. Это во многом зависит от ваших требований к использованию, т. Е. Сколько геокодов вы планируете использовать на постоянной основе.
Мы используем geoNames для наших нужд геокодирования. Просто подключитесь, отправьте запрос, и он вернет XML или JSON (в некоторых случаях). Вот статья о том, как подключить ее к WCF.
Ознакомьтесь с GeoCoding.Net - общий API геокодирования для Google, Yahoo и Bing