Angular 自定义组件中的角度预选选项未显示

Angular 自定义组件中的角度预选选项未显示,angular,typescript,angular-material,angular7,angular2-forms,Angular,Typescript,Angular Material,Angular7,Angular2 Forms,我正在尝试制作一个具有多选下拉列表的组件。当我创建这个组件的实例时,我想向它传递一个对象列表(在我的例子中是ICatagory)以显示为选项。我还想向它传递一个与预选值相同的对象列表(在我的例子中是icagory) 到目前为止,我可以将对象列表传递给它,并将其显示为选项,我还可以将我想要的预选值传递给它。但是,即使我可以通过预选,它也不会将这些值显示为已选 这是我为澄清而做的stackblitz。 注意:加载时,未选择任何内容。我希望在创建时选择预选值 还是有点新的角度,所以请原谅任何反传统的

我正在尝试制作一个具有多选下拉列表的组件。当我创建这个组件的实例时,我想向它传递一个对象列表(在我的例子中是ICatagory)以显示为选项。我还想向它传递一个与预选值相同的对象列表(在我的例子中是icagory)

到目前为止,我可以将对象列表传递给它,并将其显示为选项,我还可以将我想要的预选值传递给它。但是,即使我可以通过预选,它也不会将这些值显示为已选

这是我为澄清而做的stackblitz。 注意:加载时,未选择任何内容。我希望在创建时选择预选值


还是有点新的角度,所以请原谅任何反传统的模式,你看到的

总之,我能弄明白

有一种叫做[compareWith]的东西出现在你的

^^^用解决方案堆叠闪电战。^^^

码差。 在my-drop-down.html中 我补充说:

 [compareWith]="byId" 
byId(obj1,obj2){
 if(obj1 != undefined && obj2 != undefined){
    return obj1.id === obj2.id;
  }
}
进入垫子选择

在my-drop-down.ts中 我补充说:

 [compareWith]="byId" 
byId(obj1,obj2){
 if(obj1 != undefined && obj2 != undefined){
    return obj1.id === obj2.id;
  }
}
这可以将选项预选为对象


如果有人有更好的答案,我洗耳恭听

总之,我能弄明白

有一种叫做[compareWith]的东西出现在你的

^^^用解决方案堆叠闪电战。^^^

码差。 在my-drop-down.html中 我补充说:

 [compareWith]="byId" 
byId(obj1,obj2){
 if(obj1 != undefined && obj2 != undefined){
    return obj1.id === obj2.id;
  }
}
进入垫子选择

在my-drop-down.ts中 我补充说:

 [compareWith]="byId" 
byId(obj1,obj2){
 if(obj1 != undefined && obj2 != undefined){
    return obj1.id === obj2.id;
  }
}
这可以将选项预选为对象

如果有人有更好的答案,我洗耳恭听