2016-09-18 19 views
5

Tôi biết rằng trong ng2 chúng tôi có ComponentFactoryResolver có thể giải quyết các nhà máy mà chúng tôi có thể áp dụng cho một số ViewContainerRef.Làm thế nào để khởi tạo và áp dụng các chỉ thị theo chương trình?

Nhưng, có điều gì đó tương tự cho chỉ thị không? một cách để khởi tạo chúng và áp dụng chúng cho nội dung dự kiến ​​từ một thành phần?

+0

Tôi thực sự không có ý tưởng về điều này, nhưng nhìn thấy rằng chỉ thị rất giống với các thành phần, không sử dụng nhà máy thành phần không hoạt động cho các chỉ thị? – poke

+0

nó không hoạt động, nó sẽ phải được thêm vào các mục nhậpCác thành phần của mô-đun (vì, các đối tượng mục nhập không tồn tại cho Trình chỉ thị), và nó không thích nó. – lqbweb

Trả lời

2

Không, không thể thêm hoặc xóa chỉ thị động. Chúng chỉ được áp dụng cho HTML được thêm tĩnh vào các mẫu thành phần.

Điều bạn có thể làm là bật/tắt chỉ thị bằng cách chuyển tham số (@Input()) đến chỉ thị để thông báo cho nó làm điều gì đó hay không.

+0

sau đó, nếu tôi có một TemplateRef, nó sẽ có thể sửa đổi nó bằng tay với jQuery hoặc một cái gì đó, để nó cũng instantiates một chỉ thị khi nó được dự án phải không? – lqbweb

+1

Tôi không nghĩ vậy. 'TemplateRef' không bao giờ được thêm vào DOM. Nó chỉ được sử dụng trong nội bộ bởi Angular, do đó bạn không thể sử dụng nó với jQuery. Thêm một số HTML động, ngay cả khi nó khớp với một số bộ chọn chỉ thị, vẫn không khởi tạo một chỉ thị. –

+0

về cơ bản, có thực sự không có cách nào trong ng2, để thực sự làm cho một chỉ thị áp dụng những người khác phải không? Điều này là lái xe cho tôi hạt. Tôi không thể bọc các thành phần hiện có mà dự án xem, vào những người khác. Đơn giản không được hỗ trợ? – lqbweb

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