Tôi biết rằng các câu hỏi tương tự đã được hỏi, nhưng tôi không tìm thấy câu trả lời phù hợp. Tôi muốn tạo một danh sách lựa chọn trong một hình thức góc, trong đó giá trị cho mỗi tùy chọn là một đối tượng. Ngoài ra, tôi không muốn sử dụng 2 cách ràng buộc dữ liệu. ví dụ. nếu Component tôi có các lĩnh vực:Góc 4 - sử dụng các đối tượng cho các giá trị tùy chọn trong một danh sách lựa chọn
lUsers: any[] = [ { Name: 'Billy Williams', Gender: 'male' }, { Name: 'Sally Ride', Gender: 'female'} ]; curUser: any;
Tôi muốn mẫu HTML của tôi chứa này:
<select #selectElem (change)="setNewUser(selectElem.value)"> <option *ngFor="let user of lUsers" [ngValue]="user"> {{user.Name}} </option> </select>
Với mã này, tuy nhiên, setNewUser của tôi() chức năng nhận được các nội dung của Tên của người dùng được lựa chọn cánh đồng. Tại sao nó chọn lĩnh vực cụ thể, tôi không có ý tưởng. Những gì tôi mong đợi là nó sẽ nhận được "giá trị" của tùy chọn đã chọn, mà tôi đặt cụ thể cho một đối tượng người dùng.
Lưu ý rằng tôi đã sử dụng ngValue thay vì giá trị trong tùy chọn. Đó là do đề xuất của những người khác trên SO. Nếu tôi sử dụng giá trị thay vào đó, những gì xảy ra là đối tượng được chuyển đổi thành chuỗi '[Object object]', đó là những gì setNewUser() nhận được, đó là vô dụng.
FYI, tôi đang làm việc trên Windows 10, sử dụng góc 4.0.0 với @ góc/cli 1.1.2. Đây là setNewUser() phương pháp:
setNewUser(user: User): void { console.log(user); this.curUser = user; } // setNewUser()
tôi xác định chỉ là những gì chính xác đã được truyền cho nó cả khai thác gỗ của tôi nó, và cũng có thể bao gồm này trên mẫu: <pre>{{curUser}}</pre>
Mã của OP cũng không phải của bạn đối phó với thuộc tính giá trị. Tôi không chắc chắn lý do tại sao nó được đề cập trong câu trả lời của bạn. Hơn nữa, OP cố gắng sử dụng ngValue, vì vậy sẽ hữu ích khi thêm giải thích tại sao họ nên liên kết với thuộc tính giá trị thay vì (tốt hơn? OP có sử dụng không chính xác không? ...) – zeroflagL