Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以删除、禁用或隐藏angular4中选择属性的下拉选项_Angular_Html Select_Dropdown - Fatal编程技术网

是否可以删除、禁用或隐藏angular4中选择属性的下拉选项

是否可以删除、禁用或隐藏angular4中选择属性的下拉选项,angular,html-select,dropdown,Angular,Html Select,Dropdown,我已经用angular4编写了代码,我想隐藏或禁用下拉列表中出现的重复选项。你能告诉我藏起来的可能方法吗 我试着从中实现代码- 分配.component.ts import * as $ from 'jquery'; import { JQuery } from 'jquery'; export class AssignComponent implements OnInit { seen = {}; getRolesList() { var url =

我已经用angular4编写了代码,我想隐藏或禁用下拉列表中出现的重复选项。你能告诉我藏起来的可能方法吗

我试着从中实现代码-

分配.component.ts

  import * as $ from 'jquery';
  import { JQuery } from 'jquery';


   export class AssignComponent implements OnInit {

   seen = {};

  getRolesList() {
   var url = config.url;
   var port = config.port;
    this.http.post("http:....
   .map(result => this.rolesList = result.json())
   .subscribe((res: Response) => {


 JQuery('.updateMappingUserRole').children().each(function() {
  var txt = JQuery(this).attr('value');
  if (this.seen[txt]) {
      JQuery(this).remove();
  } else {
      this.seen[txt] = true;
  }
  });

  }
分配.component.ts

  import * as $ from 'jquery';
  import { JQuery } from 'jquery';


   export class AssignComponent implements OnInit {

   seen = {};

  getRolesList() {
   var url = config.url;
   var port = config.port;
    this.http.post("http:....
   .map(result => this.rolesList = result.json())
   .subscribe((res: Response) => {


 JQuery('.updateMappingUserRole').children().each(function() {
  var txt = JQuery(this).attr('value');
  if (this.seen[txt]) {
      JQuery(this).remove();
  } else {
      this.seen[txt] = true;
  }
  });

  }

角色:
{{UpdateMappingSerrole}}
{{i.ROLE_CD}
.map(result=>this.removeDuplicates(result.json(),this.rolesList));
RemovedUpplicates(json:any[],destination:any[]){
destination=json.reduce((p,n)=>{
//如果角色已在数组中,请不要推送
如果(!p.includes(n)){p.push(n);}
返回p;
}, []);
}
此函数将使用
reduce
函数转换HTTP调用返回的数组

编辑:
reduce
的工作原理() 对于Javascript新手或不了解
reduce
功能的人:

reduce
是一个迭代数组并对其进行变换的函数。它的签名是

reduce(callback(previousElement, nextElement, currentIndex, arr), startingValue);
让我们使用一个例子:将数字数组转换为它们的平方值

const initial=[1,2,3,4];
const transformed=initial.reduce((p,n)=>{
p、 推送(n*n);
返回p;
}, []); // 将给出[1,4,9,16]
现在让我们把它分解一下:

在第一次迭代中,我们使用数组的第一项:1

reduce
函数的初始值为空数组。
在回调中,这将给出

p = [], n = 1
因此,我们将平方值1推入数组,然后返回数组(强制)

接下来的迭代是:回调的值是

p = [1], n = 2
我们做同样的过程,在第三次和第四次迭代中,我们会有这样的结果

3 : p = [1, 4], n = 3
4 : p = [1, 4, 9], n = 4

一旦函数完成(
nextElement
没有更多的值可获取),它将返回
previousElement
的最后一个值,这是转换后的数组。

reduce
对我来说是一个新的地方,nice:)我收到以下错误-类型“AssignComponent”上不存在属性“RemovedUpplicates”。找不到名称“destination”……我们需要添加任何库或href吗link@SuchetaShrivastava
removeDuplicates
应该是组件的一个功能,您可能在其他地方编写了它(可能在另一个函数中)。我想你会理解的。不,你不需要库。@trichetriche如果你能添加更多的解释,对其他人来说也会很好well@trichetriche太好了,谢谢!!我希望我能把你的答案提高两次:P