美文网首页
Angular 下拉菜单实现的一个例子

Angular 下拉菜单实现的一个例子

作者: 华山令狐冲 | 来源:发表于2021-09-05 11:53 被阅读0次

我在开发一个测试工具,用户可以手动从一个下拉菜单里,选择当前浏览器的 user agent 字段。

其中 My Browser 是当前浏览器真实的值,其他4个都是代码里硬编码的 fake user agent,如下图所示:

这个下拉菜单的实现:


<label>
  Fake a browser

  <select [formControl]="selectedBrowser">
    <option value="">
      My browser
    </option>

    <option *ngFor="let fakebrowser of fakeBrowsers"
      [value]="fakebrowser">
      {{ fakebrowser | replace:wordStartPattern:' $&' | trim}}
    </option>
  </select>
</label>

注意这里的设计,下拉菜单有显示给终端用户查看的字符串和 value,其中 My Browser 对应的值为“”,而其余 fake browser 每个 entry 的 value,绑定到 fakeBrowsers 数组的每个元素。

那么在 Component 代码里,如何获取当前用户选中的条目对应的值呢?

利用上图给 select 控件绑定的 formControl.

selectedBrowser = new FormControl(this.defaultOptionValue);

切换下拉菜单后,首先触发 fakeBrowserSelection$ 注册的订阅函数:

根源是我们实例化的 FormControl value 发生了变化,在 setValue 方法里触发我们的 Observable:

然后是 valueChanges 这个 Observable 发出的值,触发的订阅函数:


更多Jerry的原创文章,尽在:"汪子熙":


相关文章

网友评论

      本文标题:Angular 下拉菜单实现的一个例子

      本文链接:https://www.haomeiwen.com/subject/xarjmltx.html