2017-02-02 33 views
6

Tôi có một ứng dụng Góc điều khiển dữ liệu. Tôi có một thành phần chuyển đổi mà tôi vượt qua trong một trạng thái toggled. Vấn đề của tôi là hai cách ràng buộc dữ liệu dường như không hoạt động trừ khi tôi vượt qua trong boolean chuyển đổi như một đối tượng. Có cách nào để có được điều này để làm việc mà không cần sử dụng một EventEmitter hoặc đi qua các biến trong như một đối tượng. Đây là một thành phần có thể tái sử dụng và ứng dụng được truyền dữ liệu rất nhiều để chuyển giá trị vào như một đối tượng không phải là một tùy chọn. Mã của tôi là ....Thành phần Angular2 @Input hai cách ràng buộc

toggle.html

<input type="checkbox" [(ngModel)]="toggled" [id]="toggleId" name="check"/> 

toggle.component.ts

import { Component, Input, EventEmitter, Output } from '@angular/core'; 

@Component({ 
    moduleId: module.id, 
    selector: 'toggle-switch', 
    templateUrl: 'toggle-switch.component.html', 
    styleUrls: ['toggle-switch.component.css'] 
}) 

export class ToggleSwitchComponent { 

    @Input() toggleId: string; 
    @Input() toggled: boolean; 

} 

parent.component.html

<toggle-switch toggleId="toggle-1" [(toggled)]="nongenericObject.toggled"></toggle-switch> 
+0

http://stackoverflow.com/documentation/angular2/8943/angular2-input-output#t=201702021650455443161 –

Trả lời

15

Đối [(toggled)]="..." để làm việc bạn cần

@Input() toggled: boolean; 
    @Output() toggledChange: EventEmitter<boolean> = new EventEmitter<boolean>(); 

    changeValue() { 
    this.toggled = !toggled; 
    this.toggledChange.emit(this.toggled); 
    } 

Xem thêm Two-way binding

+0

Ông sẽ là vô cùng thất vọng mà "mà không sử dụng một EventEmitter hoặc đi qua các biến như một đối tượng "không thể được đáp ứng. Nó giống như anh ta không đọc cú pháp cơ bản, oh, hey, một liên kết đến hướng dẫn cú pháp. – silentsod

+0

Ông thậm chí còn nhập 'EventEmitter'. Nó có thể không phải là xấu như bạn mong đợi ;-) –

+0

Điều này thực sự làm việc cho tôi. Ban đầu tôi đã thiết lập nó để sử dụng bộ phát sự kiện được liên kết với một hàm trong thành phần cha. Đó không phải là rất tái sử dụng do đó tôi hỏi câu hỏi để xem nếu có một cách để làm điều này. Câu trả lời này vì một số lý do thay đổi biến mẹ được chuyển đổi –

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