2017-01-31 37 views
5

Các đối số để tạo và sử dụng chỉ thị so với việc tạo và sử dụng đường ống là gì.Góc 2: Chỉ thị vs Ống

Kịch bản mà câu hỏi này xuất phát từ xung quanh đầu vào và đầu ra tiền tệ.

Nếu người dùng cần nhập tiền tệ, tại sao không tạo/sử dụng chỉ thị phân tích cú pháp đầu vào thành chuỗi tiền tệ được định dạng? Các tùy chọn khác là để có trong chuỗi đó, và hiển thị nó thông qua một ống như vậy:

<input type="text" #val (keydown)="currencyVal=val.value" /> 
<h3>{{currencyVal | currency}}</h3> 

vs

// Where mask-money is a directive that filters the 
//input to a formatted currency string 
<input type ="text" mask-money (keydown)="currencyVal=val.value" /> 
<h3>{{currencyVal}}</h3> 

Mặt khác, một đường ống có thể được sử dụng trong bộ điều khiển/thành phần được kích hoạt bởi đầu vào để lọc giá trị.

Tôi có thể hỏi một loạt câu hỏi về nó, nhưng về cơ bản tôi muốn biết: các đối số cho mỗi câu hỏi là gì?

+1

Tôi muốn nói "Cách góc" là sử dụng đường ống. Các đường ống để định dạng dữ liệu, các chỉ thị là thay đổi hành vi/sự xuất hiện của một phần tử. Trong trường hợp của bạn, bạn rõ ràng muốn trước đây. Tôi không biết nếu bạn sẽ nhận được rất nhiều "đối số cho từng trường hợp" vì điều này có vẻ như là một vấn đề nhỏ. Ngoài ra, S.O. không khuyến khích các bài viết ý kiến. – AngularChef

Trả lời

9

Để mang nó đến điểm trong các điều khoản đơn giản nhất, tôi sẽ nói một ống là để thao tác dữ liệu , trong khi một chỉ được nhiều hơn cho DOM thao tác.

Đường ống lấy dữ liệu làm đầu vào, biến đổi và xuất dữ liệu này theo cách khác.

Chỉ thị nhận được phần tử DOM, nó được "đính kèm" và nâng cao nó bằng một số loại tính năng.

Tất nhiên bạn sẽ tìm thấy các ví dụ hợp lý (xem Components vào tài khoản và bạn có ba loại cấu trúc để quyết định giữa) và đó là một câu hỏi ưa thích mà bạn chọn.

Trong ví dụ của bạn, bạn sẽ sử dụng đường ống . Giả sử bạn muốn hiển thị giá trị tiền tệ bằng văn bản in đậm và sử dụng biểu tượng hình ảnh làm biểu tượng tiền tệ, bạn có thể lấy chỉ thị