คำถามติดแท็ก angular2-services

21
วิธีที่ถูกต้องในการแบ่งปันผลของการโทรเครือข่าย Angular Http ใน RxJs 5 คืออะไร?
โดยการใช้ Http เราจะเรียกวิธีที่ใช้ในการโทรผ่านเครือข่ายและส่งกลับ http ที่สังเกตได้: getCustomer() { return this.http.get('/someUrl').map(res => res.json()); } หากเราใช้สิ่งนี้สามารถสังเกตได้และเพิ่มสมาชิกหลายคน: let network$ = getCustomer(); let subscriber1 = network$.subscribe(...); let subscriber2 = network$.subscribe(...); สิ่งที่เราต้องการจะทำคือมั่นใจได้ว่านี่จะไม่ทำให้เกิดคำขอเครือข่ายหลาย สิ่งนี้อาจดูเหมือนเป็นสถานการณ์ที่ผิดปกติ แต่จริง ๆ แล้วเป็นเรื่องธรรมดา: ตัวอย่างเช่นหากผู้โทรสมัครรับข้อมูลที่สังเกตได้เพื่อแสดงข้อความแสดงข้อผิดพลาดและส่งผ่านไปยังเทมเพลตโดยใช้ async pipe เรามีสมาชิกสองคนแล้ว วิธีที่ถูกต้องในการทำเช่นนั้นใน RxJs 5 คืออะไร? คือนี่ดูเหมือนจะทำงานได้ดี: getCustomer() { return this.http.get('/someUrl').map(res => res.json()).share(); } แต่นี่เป็นวิธีที่ใช้ในการทำสิ่งนี้ใน RxJs 5 หรือว่าเราควรทำอย่างอื่นแทน? …

4
การใช้ EventEmitter ที่เหมาะสมคืออะไร
ฉันได้อ่านคำถามเช่นAccess EventEmitter Service ภายใน CustomHttp ซึ่งผู้ใช้ใช้ EventEmitter ในบริการของเขา แต่เขาแนะนำในความคิดเห็นนี้ว่า อย่าใช้และใช้แทน Observables โดยตรงในบริการของเขา ฉันยังอ่านคำถามนี้ ซึ่งโซลูชันแนะนำให้ส่ง EventEmitter ไปยังเด็กและสมัครเป็นสมาชิก คำถามของฉันคือ: ฉันควรหรือไม่ควรสมัครสมาชิกด้วยตนเองกับ EventEmitter? ฉันจะใช้มันได้อย่างไร

3
Angular2: วิธีโหลดข้อมูลก่อนที่จะแสดงองค์ประกอบหรือไม่
ฉันกำลังพยายามโหลดกิจกรรมจาก API ของฉันก่อนที่ส่วนประกอบจะแสดงผล ขณะนี้ฉันกำลังใช้บริการ API ของฉันซึ่งฉันเรียกจากฟังก์ชัน ngOnInit ของส่วนประกอบ 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 …

14
ฉันจะสร้างบริการเดี่ยวใน Angular 2 ได้อย่างไร
ฉันได้อ่านแล้วว่าการฉีดเมื่อการบูตสแตรปควรให้เด็กทุกคนใช้อินสแตนซ์เดียวกันร่วมกัน แต่ส่วนประกอบหลักและส่วนหัวของฉัน (แอพหลักรวมถึงส่วนหัวและเต้ารับเราเตอร์) แต่ละเครื่องได้รับอินสแตนซ์แยกจากบริการของฉัน ฉันมี FacebookService ซึ่งฉันใช้เพื่อโทรไปที่ facebook javascript api และ UserService ที่ใช้ FacebookService นี่คือบูตของฉัน: bootstrap(MainAppComponent, [ROUTER_PROVIDERS, UserService, FacebookService]); จากการเข้าสู่ระบบของฉันดูเหมือนว่าการเรียก bootstrap เสร็จสิ้นจากนั้นฉันเห็น FacebookService จากนั้น UserService ที่ถูกสร้างขึ้นก่อนที่รหัสในแต่ละตัวสร้างการทำงาน, MainAppComponent, HeaderComponent และ DefaultComponent:

7
Angular 2 TypeScript วิธีค้นหาองค์ประกอบใน Array
ฉันมีส่วนประกอบและบริการ: ส่วนประกอบคือ: 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 ของฉันฉันมีอาร์เรย์ที่สังเกตได้ 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 array อัปเดต: ดูเหมือนว่า(list $ | async) ?. lengthทำให้เรามีความยาว แต่โค้ดด้านล่างยังใช้ไม่ได้: <div> Length: {{(list$ | async)?.length}} <div *ngIf="(list$ | async)?.length>0"> <ul> <li *ngFor="let …

2
ความแตกต่างระหว่าง EventEmitter.next () และ EventEmitter.emit () ใน Angular 2
อะไรคือความแตกต่างระหว่างEventEmitter.emit()และEventEmitter.next()? ทั้งการส่งงานไปยังผู้ฟังที่สมัครรับข้อมูล export class MyService { @Output() someEvent$: EventEmitter<any> = new EventEmitter(); someFunc() { this.someEvent$.emit({myObj: true}); this.someEvent$.next({myObj: true}); } } เอกสารประกอบสำหรับ EventEmitterไม่เป็นประโยชน์ในขณะนี้

3
จะหลีกเลี่ยงการนำเข้าด้วยเส้นทางสัมพัทธ์ที่ยาวมากใน Angular 2 ได้อย่างไร
ฉันจะแนะนำสิ่งที่ต้องการ'my-app-name/services'หลีกเลี่ยงบรรทัดเช่นการนำเข้าต่อไปนี้ได้อย่างไร import {XyService} from '../../../services/validation/xy.service';
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.