2016-04-17 22 views
9

Có phải như thế này có thể không?Angular2: các thuộc tính ng-content chuyển đến thành phần con

Tôi muốn chuyển biến "hasfocus" từ cjc-box thông qua các thuộc tính ng-content sang thành phần đầu vào cjc.

app.component.html

<div cjc-box><div cjc-input></div></div> 

CIC-box.component.html

<div class="cjc-box"> 
    <div><ng-content hasfocus="focus"></ng-content></div> 
</div> 

CIC-input.component.html

<input class="cjc-input" type="text" focus="{{hasfocus}}" /> 

Đây có phải là thậm chí có thể với dự báo trong ng2?

Trả lời

8

Có thể vượt qua biến nội dung dự kiến ​​(giả định phần cjc-box tuyên bố sở hữu focus và thành phần cjc-input tuyên bố sở hữu hasfocus):

<div cjc-box #box><div cjc-input [hasfocus]="box.focus"></div></div> 

này được một chiều ràng buộc, nếu bạn muốn hai chiều đó là hơi phức tạp hơn:

  • Thêm @Input() trang trí cho focus tài sản của thành phần hộp.
  • Thêm @Input() trang trí cho hasfocus thuộc tính của thành phần đầu vào
  • Thêm @Output() hasfocusChange:EventEmitter<any> = new EventEmitter<any>(); vào thành phần đầu vào.
  • Thêm this.hasfocusChange.emit(this.hasfocus); sau hasfocus thay đổi thành phần đầu vào của bạn.
  • Thay đổi mẫu để <div cjc-box #box><div cjc-input [(hasfocus)]="box.focus"></div></div>
+0

Thật đơn giản! Cảm ơn bạn! –

+0

Bây giờ tôi nhận được giá trị cho hasfocus trong thành phần đầu vào cjc, tuyệt vời! Nhưng khi tôi thay đổi giá trị bên trong thành phần đầu vào cjc thì thành phần của nó không thay đổi trong thành phần cha (cjc-box). Có vẻ như đó là bản sao chứ không phải là tham chiếu. :( –

+0

Cảm ơn bạn một lần nữa –

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