angular / angular/components

bug: mat-chip color is not working properly within mat-chip-list & mat-form-field

Đang mở
#9,851 19 bình luận 18 reaction 0 người được giao Xem trên GitHub
area: material/chips needs investigation P3
Ngôn ngữ chính
TypeScript
Star
25k
Fork
6.8k
Merge trung bình
1 ngày 8 giờ
Pull request đã merge (30 ngày)
91

Mô tả

#### Scenario

I have a simple input field that have an async autocomplete feature in order to add an email of a set of users. The added email will be illustrated in form of mat-chip within a mat-chip-list.

#### Bug
I have in my template an mat-form-field element that conatins a mat-chip-list element.
Within the mat-chip-list element i have also nested elements including the mat-chip element and an input as well as an mat-autocomplete element.

The color input of mat-chip is eql "accent", however the color is correct if i add an element to the list using the matChipInputTokenEnd event. Else, all chip's color are reset to the default one, e.g: if I add an item to the mat-chip-list using the auto complete feature...
This is very strange and therefore i provide the code and a gif below.
PS: selected input is eql `true`.

To confirm that the mat-chip works normally without the combination explained above,
i added a stand alone mat-chip (primary color - indigo) above the mat-chip-list and this works as expected. Furthermore, i added a static mat-chip ("testing") within the mat-chip-list with an accent color. This is not working too!

#### What is the expected behavior?

all chips should be with the color entered --> "accent" !!!

#### What is the current behavior?

#### What are the steps to reproduce?

```html

testing



testing


{{email}}
cancel




{{ user.email }}
({{user.displayName}})



Bitte geben Sie eine gültige E-Mail-Adresse ein




```

```ts
....
@ViewChild('emailsInput') emailsInputElement: ElementRef;

public add(event: MatChipInputEvent): void {
const input = event.input;
const value = event.value;

// Add an email
if ((value || '').trim() && this.validateEmail(value)) {
this.userEmails.push(value.trim());
this.emailsInputElement.nativeElement.value = '';
}
}

public test($event: MatAutocompleteSelectedEvent) {
console.log('on optionSelected: ', $event.option.value);
this.userEmails.push($event.option.value.trim());
this.searchValue = '';
this.emailsInputElement.nativeElement.value = '';
console.log('emails array: ', this.userEmails);
}

public remove(email: any): void {
const index = this.userEmails.indexOf(email);

if (index >= 0) {
this.userEmails.splice(index, 1);
}
}

}

```

#### Which versions of Angular, Material, OS, TypeScript, browsers are affected?
- Angular v5.2.3
- Material v5.1.0
- OS: MacOS high Sierra
- TS v2.4.2
- Browsers: tested on chrome and firefox (not working!)

#### Is there anything else we should know?

![feb-08-2018 22-43-04](https://user-images.githubusercontent.com/20149774/35999983-d2f2ac0c-0d21-11e8-953b-6100d8dd11c4.gif)

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện việc đặt lại màu đã được báo cáo với template được cung cấp gồm mat-chip-list, mat-form-field, input và mat-autocomplete trên Angular 5.2.3 và Material 5.1.0. Theo dõi cách xử lý màu của mat-chip đối với các chip được thêm thông qua autocomplete và đối với chip tĩnh, sau đó xác minh rằng mọi chip vẫn giữ màu accent-colored trong khi chip độc lập vẫn giữ màu primary.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
angular, typescript
Lĩnh vực
frontend
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.