Questions tagged «angular2-services»

使用此标记可解决与Angular 2 Services有关的问题,这些问题是负责执行单个任务的JavaScript函数。

21
在RxJs 5中共享Angular Http网络调用结果的正确方法是什么?
通过使用Http,我们调用了一个方法,该方法进行网络调用并返回可观察到的http: getCustomer() { return this.http.get('/someUrl').map(res => res.json()); } 如果我们采取这种可观察的方法,并向其添加多个订阅者: let network$ = getCustomer(); let subscriber1 = network$.subscribe(...); let subscriber2 = network$.subscribe(...); 我们要做的是确保这不会引起多个网络请求。 这似乎是一种不寻常的情况,但实际上非常普遍:例如,如果调用者订阅了可观察对象以显示错误消息,并使用异步管道将其传递给模板,则我们已经有两个订阅者。 在RxJs 5中这样做的正确方法是什么? 即,这似乎工作正常: getCustomer() { return this.http.get('/someUrl').map(res => res.json()).share(); } 但这是RxJs 5中惯用的方式吗?还是我们应该做其他事情呢? 注意:根据Angular 5 new HttpClient,.map(res => res.json())所有示例中的部分现在都已无用,因为默认情况下现在假定JSON结果。

4
EventEmitter的正确用法是什么?
我已经读过诸如CustomHttp内的Access EventEmitter Service之类的问题 ,其中用户在其服务中使用EventEmitter,但在此注释中建议他 不要使用它,而应在其服务中直接使用Observables。 我还读了这个 问题 ,解决方案建议将EventEmitter传递给孩子并订阅它。 然后我的问题是:我应该还是不应该手动订阅EventEmitter?我应该如何使用它?

3
Angular2:如何在渲染组件之前加载数据?
我正在尝试在呈现组件之前从我的API加载事件。当前,我正在使用从组件的ngOnInit函数调用的API服务。 我的EventRegister组件: import {Component, OnInit, ElementRef} from "angular2/core"; import {ApiService} from "../../services/api.service"; import {EventModel} from '../../models/EventModel'; import {Router, ROUTER_DIRECTIVES, ROUTER_PROVIDERS, RouteConfig, RouteParams, RouterLink} from 'angular2/router'; import {FORM_PROVIDERS, FORM_DIRECTIVES, Control} from 'angular2/common'; @Component({ selector: "register", templateUrl: "/events/register" // provider array is added in parent component }) export class EventRegister implements OnInit …

14
如何在Angular 2中创建单例服务?
我已经读过,引导时的注入应该让所有子节点共享同一个实例,但是我的主要和标头组件(主应用程序包括标头组件和路由器出口)都分别获得了我的服务的单独实例。 我有一个FacebookService和一个使用FacebookService的UserService,可以用来调用facebook javascript api。这是我的引导程序: bootstrap(MainAppComponent, [ROUTER_PROVIDERS, UserService, FacebookService]); 从我的记录看来,引导调用完成了,然后我看到在运行每个构造函数中的代码(MainAppComponent,HeaderComponent和DefaultComponent)之前先创建了FacebookService,然后创建了UserService:

7
Angular 2 TypeScript如何在数组中查找元素
我有一个组件和一个服务: 零件: export class WebUserProfileViewComponent { persons: Person []; personId: number; constructor( params: RouteParams, private personService: PersonService) { this.personId = params.get('id'); this.persons = this. personService.getPersons(); console.log(this.personId); } } 运行代码段隐藏结果展开摘要 服务: @Injectable() export class PersonService { getPersons(){ var persons: Person[] = [ {id: 1, firstName:'Hans', lastName:'Mustermann', email: 'mustermann@test.com', company:'Test', country:'DE'}, {id: …

8
如何检查可观察数组的长度
在我的Angular 2组件中,我有一个Observable数组 list$: Observable<any[]>; 在我的模板中 <div *ngIf="list$.length==0">No records found.</div> <div *ngIf="list$.length>0"> <ul> <li *ngFor="let item of list$ | async">item.name</li> </ul> </div> 但是list $ .length在Observable数组中不起作用。 更新: 似乎(list $ | async)?. length给了我们长度,但是下面的代码仍然不起作用: <div> Length: {{(list$ | async)?.length}} <div *ngIf="(list$ | async)?.length>0"> <ul> <li *ngFor="let item of (list$ | async)"> {{item.firstName}} </li> </ul> …



5
如何在角度2中绑定HTML中组件的静态变量?
我想在HTML页面中使用组件的静态变量。如何在angular 2中将组件的静态变量与HTML元素绑定? import { Component, OnInit } from '@angular/core'; import { Observable } from 'rxjs/Rx'; @Component({ moduleId: module.id, selector: 'url', templateUrl: 'url.component.html', styleUrls: ['url.component.css'] }) export class UrlComponent { static urlArray; constructor() { UrlComponent.urlArray=" Inside Contructor" } } <div> url works! {{urlArray}} </div >

3
类型“ Observable <Response>”上不存在属性“ toPromise”
import { Headers, Http } from '@angular/http'; @Injectable() export class PublisherService{ private publishersUrl = 'app/publisher'; constructor(private http: Http) { } getPublishers(): Promise&lt;Publisher[]&gt;{ return this.http.get(this.publishersUrl) .toPromise() .then(response =&gt; response.json().data) .catch(this.handleError); } } 我收到此错误: 属性'toPromise'在'Observable'类型上不存在。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.