小编Mom*_*omo的帖子

ng-bootstrap-提前输入下拉宽度

我开始使用ng-bootstrap Typeahead组件,对此我感到非常满意。

我想实现的一件事是使下拉菜单项的宽度与输入字段的宽度相同,而默认行为将宽度与文本长度相对应。应该是基本的CSS ...

我在Plunker中创建了一个基本示例

您可以注意到,所应用的样式将被忽略:

.dropdown-menu { width: 100%;}
Run Code Online (Sandbox Code Playgroud)

如果我使用浏览器开发工具,并且应用相同的工具,则会应用该工具。

使用CSS如何获得结果的任何想法?

css bootstrap-4 ng-bootstrap angular

5
推荐指数
3
解决办法
3440
查看次数

ng-bootstrap typeahead:如何处理 Observable<Person[]> 而不是 Observable<string[]>

我有一个新手 Angular/Typescript 问题。

我遵循ng-bootstrap typeahead 中定义的维基百科示例,我决定用提供以下 GET 调用的自定义 REST 服务替换 Wikipedia 调用:

  • 获取 /person/name/{name}

并返回与姓名匹配的人员列表,其中每个人是:

Person(id:long, name:string, surname:string)
Run Code Online (Sandbox Code Playgroud)

现在从打字稿部分和角度部分,如果我将人员数组映射(...)到名称字符串数组到 _service 中,则一切正常:

  • [p1, p2, p3] -> [nameP1, nameP2, ...]

但是我不想在 _service 中以这种方式映射并返回人员列表,以允许用户单击下拉列表中的结果,然后显示人员的详细信息而无需后续调用。

所以目前在我的打字稿组件中,模型是:

model: Observable<Person[]>;
Run Code Online (Sandbox Code Playgroud)

搜索部分如下:

search = (text$: Observable<string>) =>
        text$.pipe(
            debounceTime(300),
            distinctUntilChanged(),
            tap(() => this.searching = true),
            switchMap(term =>
                this._service.search(term).pipe(
                    tap(() => this.searchFailed = false),
                    catchError(e => {
                        this.searchFailed = true;
                        return of([]);
                    }))
            ),
            tap(() => this.searching = false),
            merge(this.hideSearchingWhenUnsubscribed)
        )
Run Code Online (Sandbox Code Playgroud)

而 html 部分是:

 <div class="input-group …
Run Code Online (Sandbox Code Playgroud)

rxjs typescript ng-bootstrap angular

5
推荐指数
1
解决办法
3077
查看次数

标签 统计

angular ×2

ng-bootstrap ×2

bootstrap-4 ×1

css ×1

rxjs ×1

typescript ×1