【问题标题】:Angular2 v2.4.9 HTML select doesn't show optionsAngular2 v2.4.9 HTML 选择不显示选项
【发布时间】:2017-06-09 16:33:36
【问题描述】:

自从我从 angularjs 迁移以来,我遇到了 angular2 的这个问题, select 元素的选项数据来自 solr 的查询,此查询不会花费那么长时间,并且总是给出响应 200 和数据。

问题是,如果我不刷新页面或注销并再次登录,则此选择的选项永远不会出现,有时我必须刷新才能看到这些选项的次数是随机的。

我认为这个问题与引导程序或浏览器有关,但在 chrome 和 firefox 中问题是一样的。

我认为这是一个 angular2 错误,但现在我正在寻找解决方法或破解以使其工作,我必须展示明天工作的网页(我希望)。

html代码:

    <select class="selectpicker" data-live-search="true" [(ngModel)]="selectedId" (change)="changeValue($event.target.value)">
    <option *ngFor="let d of destinos | orderBy" [ngValue]="d.id">{{getName(d)}}</option>

</select>

其他详情

  • destinos 数据填写正确,收到数据后可以看到输出

  • orderBy是自定义管道,代码如下:

从“@angular/core”导入 { Pipe, PipeTransform };

@Pipe({ name: 'orderBy', pure: false })

导出类 OrderBy 实现 PipeTransform { transform(array: 数组,参数:字符串):数组{

console.log(array);
if (array == undefined)
  return;
array.sort((a: any, b: any) => {

  if (a.toLowerCase() < b.toLowerCase()) {
    return -1;
  } else if (a.toLowerCase() > b.toLowerCase()) {
    return 1;
  } else {

    return 0;
  }
});
return array;   }

}

更新 以防万一有人遇到这个问题,我从选择中删除了class="selectpicker",现在它总是有效,我认为它与引导程序有关,现在虽然看起来有点难看,但它是一个很好的临时解决方案。

【问题讨论】:

  • 我相信您的问题与引用的错误无关。我想看看你填充“destinos”数组的代码。
  • 请详细说明您的问题
  • orderBy 是自定义还是默认管道?可以不带参数调用吗?

标签: javascript html angular


【解决方案1】:

你试过没有“| orderBy”吗? 因为在 Angular2 中,不再有 FilterPipe 或 OrderByPipe。 -> https://angular.io/docs/ts/latest/guide/pipes.html

【讨论】:

  • OrderBy 是一个自定义管道
猜你喜欢
  • 1970-01-01
  • 2012-10-31
  • 2014-06-20
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
  • 2014-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多