Tôi đang làm việc trên một dự án ứng dụng web và tôi đang cố gắng sử dụng Góc, tôi gặp một số vấn đề với giao tiếp thành phần. Ví dụ, làm thế nào một thành phần cha mẹ trao đổi dữ liệu với thành phần con, làm thế nào để giao tiếp giữa các thành phần anh chị em.Làm thế nào để giao tiếp giữa các thành phần trong Angular?
Trả lời
Bạn sẽ cần sử dụng tính năng tiêm phụ thuộc. Dưới đây là một ví dụ nhỏ: https://github.com/gdi2290/angular2do/blob/gh-pages/app/components/todo-item/todo-item.js
@Input và @Output
Nếu có thành phần nhiều phần dữ liệu bạn có thể sử dụng @Input và @Output để trao đổi dữ liệu. Document: https://angular.io/guide/component-interaction
dụ: https://angular.io/generated/live-examples/component-interaction/eplnkr.html
Dependency Injection
bạn có thể lưu trữ dữ liệu trong dịch vụ, và sau đó tiêm dịch vụ vào các thành phần mà bạn muốn. chẳng hạn như "user.server.ts" trong ví dụ:
https://angular.io/generated/live-examples/dependency-injection/eplnkr.html
liên kết thứ hai bị hỏng, hãy sửa nó nếu có thể –
Nếu bạn đang cố gắng để giao tiếp từ một bộ phận phụ huynh để một thành phần con, điều này được mô tả khá rõ ràng sử dụng @Input và EventEmitters với @Output trong tài liệu góc.
Angular 2 component interaction
Đối với thông tin liên lạc trên anh chị em, tôi đã đăng một câu trả lời trong một câu hỏi tương tự mà có thể giúp đỡ với vấn đề chia sẻ dữ liệu giữa các thành phần anh chị em. Hiện tại, tôi nghĩ phương pháp dịch vụ được chia sẻ là hiệu quả nhất.
Tôi thấy câu trả lời hữu ích và upvoted nó, nhưng sau đó nhìn thấy trong trang khác mà chủ yếu liên quan đến Angular 2: Câu trả lời của Alex J là tốt nhưng nó không còn hoạt động với Angular hiện tại 4 tính đến tháng 7 năm 2017 – msanjay
Sử dụng dịch vụ:
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs/Subject';
@Injectable()
export class AppState {
public _subject = new Subject<object>();
public event = this._subject.asObservable();
public publish(data: any) {
this._subject.next(data);
}
}
và bạn có thể xuất bản thông điệp sự kiện như thế này:
export class AppComponent {
constructor(
public appState: AppState
) {
appState.publish({data: 'some data'});
}
}
và bạn có thể đăng ký những sự kiện này:
export class HomeComponent {
constructor(
public appState: AppState
) {
appState.event.subscribe((data) => {
console.log(data); // {data: 'some data'}
});
}
}
Có Sự kiện API ở góc có thể làm điều đó cho bạn.
Click here for more details on Events.
Dưới đây là ví dụ nhanh tôi hiện đang sử dụng trong dự án của mình. Hy vọng nó sẽ giúp ai đó có nhu cầu.
nhập {Events} từ 'ionic-angular';
Cách sử dụng:
constructor(public events: Events) {
/*=========================================================
= Keep this block in any component you want to receive event response to =
==========================================================*/
// Event Handlers
events.subscribe('menu:opened',() => {
// your action here
console.log('menu:opened');
});
events.subscribe('menu:closed',() => {
// your action here
console.log('menu:closed');
});
}
/*=====================================================
= Call these on respective events - I used them for Menu open/Close =
======================================================*/
menuClosed() {
// Event Invoke
this.events.publish('menu:closed', '');
}
menuOpened() {
// Event Invoke
this.events.publish('menu:opened', '');
}
}
- 1. Làm cách nào để chia sẻ thành phần Angular 2 giữa nhiều dự án Angular 2?
- 2. Làm thế nào để nghe các sự kiện phạm vi trong thành phần Angular 1.5?
- 3. Giao tiếp thành phần trong góc 1,5
- 4. Làm thế nào để sử dụng SASS cho các thành phần phong cách trong Angular 2?
- 5. Giao tiếp giữa các phạm vi anh chị em trong Angular
- 6. Làm thế nào để giao tiếp giữa các khung nhìn trong RCP Eclipse?
- 7. Làm thế nào để giao tiếp giữa các ngữ cảnh trong ứng xử 3?
- 8. Làm thế nào để loại bỏ các thành phần được tạo ra với Angular-CLI
- 9. Làm thế nào để bạn giao tiếp với các nhóm bên ngoài thành phố của bạn?
- 10. Giao tiếp giữa iFrames?
- 11. Làm thế nào để đổi tên một thành phần trong Angular CLI
- 12. Trong Angular 1.5, làm thế nào để ràng buộc một thành phần thuộc tính như boolean?
- 13. Xuất mảng các thành phần trong Angular 2
- 14. Giao tiếp giữa các luồng. Làm thế nào để gửi một tín hiệu đến thread khác
- 15. Làm thế nào để bạn giao tiếp giữa các nhiệm vụ Rake?
- 16. Làm thế nào để mở rộng một thành phần với tiêm phụ thuộc trong Angular 2?
- 17. Làm thế nào để tiêm bộ định tuyến thành phần trong Angular 1.5?
- 18. Kiểu được chia sẻ giữa các thành phần trong ứng dụng Angular 2
- 19. Làm thế nào để chia sẻ dữ liệu giữa các thành phần trong VueJS
- 20. Giao tiếp giữa các ứng dụng?
- 21. Giao tiếp giữa các ứng dụng Rails
- 22. Sử dụng lại các thành phần trong Angular 2
- 23. Nơi lưu trữ những gì trong mô hình MVC và các thành phần giao tiếp như thế nào?
- 24. Hình động chuyển tiếp trang với giao diện bộ định tuyến và thành phần Angular 2.0 hứa hẹn
- 25. Giao tiếp giữa hai microservices
- 26. Giao tiếp thành phần Angular2 với bộ định tuyến
- 27. Giao tiếp giữa các đoạn lồng nhau trong Android
- 28. Làm thế nào để bạn giao tiếp giữa 2 tab/cửa sổ trình duyệt?
- 29. Làm thế nào để giao tiếp với modem USB 3G?
- 30. Làm thế nào để truy cập một hằng số trong một thành phần và dịch vụ Angular 2?
Phụ thuộc vào những gì bạn muốn làm.Bạn đang cố gắng để làm rpc, tin nhắn đi qua hoặc chỉ chia sẻ các biến? –