2016-02-02 28 views
34

Khi tôi sử dụng đường ống tùy chỉnh của tôi trong mẫu, nó giống như thế này. Và nó hoạt động tốt.Có thể sử dụng đường ống trong mã trong Angular 2 không?

{{user|userName}} 

Có thể sử dụng đường ống trong mã không? Tôi cố gắng sử dụng như thế này,

let name = `${user|userName}`; 

Nhưng nó cho thấy

userName không được định nghĩa

cách khác của tôi đang sử dụng db.collection.findOne() bằng tay trong các mã. Nhưng có cách nào thông minh không?

+0

Bạn không thể sử dụng mẫu như thế này, bạn phải tiêm ống vào contructor của bạn –

+0

xin lỗi, tôi sẽ làm cho nó rõ ràng. Tôi đã tiêm ống –

+0

Ống nào bạn đang cố gắng sử dụng trong mã? Đây có phải là đường ống tùy chỉnh của bạn không? – Siva

Trả lời

41

@Siva là chính xác. Và cảm ơn!

Vì vậy, cách sử dụng các đường ống trong thành phần là như thế này:

let name = new UserNamePipe().transform(user); 

Link đến một câu hỏi tương tự.

+0

'... transform()' là phương pháp mặc định của nó? –

32

đây là cách bạn có thể sử dụng ống trong thành phần:

import { YourPipeComponentName } from '@angular/common'; 

class YourService { 

    constructor(private pipe: YourPipeComponentName) {} 

    YourFunction(value) { 
    this.pipe.transform(value, 'pipeFilter'); 
    } 
} 
+0

Có vẻ đẹp! Nhưng đối với một số lý do phụ thuộc tiêm không thể tiêm ống của tôi vào constructor, mặc dù nó có thể được sử dụng trong html mà không có vấn đề. Nó được khai báo và xuất khẩu trong một mô-đun khác, có lẽ nó cũng cần nằm trong danh sách nhà cung cấp? Mặc dù vậy, việc tạo và sử dụng phiên bản MyPipe mới hoạt động. Chỉ DI có vấn đề ... – Sam

+4

@Sam Thật vậy, nó cần phải nằm trong 'nhà cung cấp'. Thêm 'YouPipeComponentName' vào' provider' của bạn và phương thức này sẽ hoạt động hoàn hảo. – SrAxi

+0

Ngoài ra hãy chắc chắn rằng bạn thêm nó vào các nhà cung cấp chính xác. Nếu bạn muốn sử dụng đường ống trên toàn cầu, hãy đặt nó trong các nhà cung cấp ứng dụng. Nếu bạn muốn sử dụng nó chỉ trong một số mô-đun được nạp lazily, hãy đặt nó vào các nhà cung cấp mô-đun tương ứng của họ – Phil

Các vấn đề liên quan