小编CAl*_*lex的帖子

Angular Material 触摸屏滚动问题

我的 Angular Material 应用程序中有几个地方似乎无法在移动触摸屏设备上滚动。垫按钮似乎是问题,但并非在所有情况下。

  • 例如,我有一个响应式按钮组件,它不会在移动设备上水平滚动。滚动条显示,但按钮不允许触摸滚动。
  • 这在我的垫子桌上也是一样的。我有一列用于使用 mat-icon-buttons 的 CRUD 操作。这是表格中唯一不允许用户触摸时滚动的部分。
  • 折叠时,我的主要 SideNav 也不会垂直滚动。我将其折叠为带有 mat-icons 的 mat-list-items 列表。

这很奇怪,因为每当我创建一个新项目或 stackblitz 来重新创建这种效果时,它都不会发生。

这是我的响应式按钮组件的简化版本,具有相同的 html 和 css 结构:Blitz。如果您使用浏览器的内置响应式查看器,它应该可以很好地滚动。

我什至将闪电战中的确切代码复制到我的应用程序中,但它无法正常工作。无论我把它放在哪里/我改变了什么,它都拒绝滚动。

如果我从应用程序中的按钮中删除 mat-*******-button,一切都会按预期进行。这似乎是某些指令的问题?

在此处输入图片说明

css angular-material angular

8
推荐指数
2
解决办法
3531
查看次数

未捕获的TypeError:Reflect.defineMetadata不是Angular 7 Production Build上的函数

我正在尝试将Angular 7应用的生产版本部署到Azure。我可以在运行ng build时轻松部署它,但是当尝试完整运行时,我ng build --prod在控制台下收到此错误,并且该页面无法加载。在本地服务器上运行应用程序时也会发生这种情况。

Uncaught TypeError: Reflect.defineMetadata is not a function
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我已经搜索过,但找不到该确切错误的参考。我看到大部分结果是这样的:Uncaught TypeError: Reflect.getMetadata is not a function

production metadata typeerror angular

6
推荐指数
3
解决办法
2089
查看次数

Angular 动态组件:@ViewChildren 为 QueryList 中的每个组件获取 ViewContainerRef

我正在构建一个带有动态选项卡的对话框,该对话框可以接收要放置在选项卡主体中的组件。我很难使用 @ViewChildren 创建多个动态组件。我过去已经很容易地使用单个组件和 @ViewChild 成功地完成了此操作。

这是我的模板:

<mat-tab *ngFor="let tab of tabs" [label]="tab.label">
     <ng-template #comp></ng-template>
</mat-tab>
Run Code Online (Sandbox Code Playgroud)

这是我的组件逻辑:

@ViewChildren("comp") dynComponents: QueryList<any>;


public ngAfterContentInit() {
  this.tabs.forEach(tab => {
     const factory = this._resolver.resolveComponentFactory(tab.component);
     console.log(this.dynComponents); // Returns undefined.

     // this.componentRef = this.vcRef.createComponent(factory);
  });
}
Run Code Online (Sandbox Code Playgroud)

即使在模板中对组件进行硬编码,我的 dynComponents 也未定义。我似乎需要从这个 dynComponents QueryList 获取 ViewContainerRef,但我不确定为什么它根本没有填充。我用这篇文章作为参考:帖子

angular angular-dynamic-components

6
推荐指数
1
解决办法
2万
查看次数

VSCode 智能感知在定义的对象上自动生成缺少的 TypeScript 类型属性

VSCode 的智能感知有一个选项来拉入所需的界面成员。它也可以为 TypeScript 类型做到这一点吗?

例如,如果我有一个导出类型:

export type Button = {
  id: string;
  text: string;
  color?: ColorOptions;
  icon?: string;
  tooltip?: Tooltip;
};
Run Code Online (Sandbox Code Playgroud)

当我创建一个新对象时:

const button: Button = {
   // No Code Actions.
}
Run Code Online (Sandbox Code Playgroud)

我没有任何代码操作来填充所需的属性。

老实说,我也希望它也可以选择拉入可选道具。我知道我可以查看 + 复制 + 粘贴,但是我必须重新格式化,因为定义和使用类型的语法不一样。

有这个功能吗?

visual-studio-code vscode-settings

5
推荐指数
2
解决办法
2172
查看次数

Angular 7 HttpClient put 请求参数向端点发送空值

我有一个带有这个 Put 请求方法的 Angular 服务:

put(peopleFieldID: number, peopleFieldName: string): Observable<number> {
let params = new HttpParams();
params = params.append("peopleFieldID", peopleFieldID.toString());
params = params.append("peopleFieldName", peopleFieldName);

return this.http
  .put<number>(this.url, { params: params })
  .pipe(catchError(this._errorHandling.handleError.bind(this)));}
Run Code Online (Sandbox Code Playgroud)

以上在我的 .net 核心 API 上命中了这个端点:

    [Authorize(Roles = "Client")]
    [Route("")]
    [HttpPut]
    public IActionResult C_Update(int peopleFieldID, string peopleFieldName )
    {
        //Make call to the proper repo method.
        return Json(_peopleFieldRepo.C_Update(peopleFieldID, peopleFieldName));
    }
Run Code Online (Sandbox Code Playgroud)

peopleFieldID 和 peopleFieldName 这两个参数始终为 0 和 null。我已经指出 Angular 前端正确发送了参数,但后端无法识别它们。我有许多其他端点可以正常工作。

asp.net-web-api asp.net-core angular angular-httpclient

2
推荐指数
1
解决办法
2909
查看次数

Angular RXJS forkJoin 完成进度

我想在我的 Angular 应用程序中有一个批量 HTTP 请求的进度计数器。我使用 forkJoin 来执行一组 Observable。管道只执行一次。它不会针对 obs 变量中的 X 个请求执行。有没有其他方法可以在 forkJoin 中获得完整的 Observable?

这是我尝试过的:

    let obs: Observable<any>[] = [...];
    let counter: number = 0;
    // obs has 5 items here.
    forkJoin(obs)
    .pipe(
      tap(() => {
        counter++;
      })
    )
    .subscribe(res => {
    })
    .add(() => {
      loadingRef.close(loadingRef);
      this.refresh();
      // Counter only equals 1 here.
      // It should equal 5.
    });
Run Code Online (Sandbox Code Playgroud)

rxjs typescript angular

2
推荐指数
1
解决办法
1080
查看次数