小编noa*_*ner的帖子

如何在运行时更改 Angular CDK 覆盖层的 dir 属性?

我使用的是 Angular 10,单击后将执行以下函数来执行方向更改:

private changeHtmlDirection(direction: 'rtl' | 'ltr') {
    document.getElementsByTagName("html")[0].dir = direction;
}
Run Code Online (Sandbox Code Playgroud)

它运行良好,只是 Angular CDK 没有更新。

我试图找到一个 API 来在运行时更改 Angular CDK 的方向,但没有找到。我看到有一个BidiModule,但它仅用于获取当前方向而不是设置它。

有什么解决办法吗?

在此输入图像描述

html dom angular-material2 angular angular-cdk

8
推荐指数
1
解决办法
1086
查看次数

TypeORM 选择不区分大小写的不同

我正在尝试创建一个连接到 postgresql 数据库的 TypeORM 查询生成器以获取数据库中的所有唯一名称。我的查询看起来像这样

names = await this._context.manager
        .getRepository(Names)
        .createQueryBuilder('names')
        .select('DISTINCT ON (names.name) names.name')
        .orderBy('names.name', 'ASC')
        .getRawMany();
Run Code Online (Sandbox Code Playgroud)

现在,此查询会获取数据库中的所有名称,但它区分大小写,因此无法从“jane doe”中筛选出“Jane Doe”等重复项。到目前为止,我已经尝试像这样制作不同的大写/小写: .select('DISTINCT ON LOWER(names.name) names.name')但这不起作用。我还找到了一个 .distinctOn() 函数,但我也无法使该函数不区分大小写。

我是 typeORM 的新手,所以我对从这里去哪里有点茫然,有什么想法吗?

我正在使用 Node.JS 开发 postgresql DB,如果这有什么区别的话。

javascript postgresql node.js typeorm

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

Angular Material:如何格式化日期选择器日期标签?

是否可以将日期标签从 2 个字符更改为 3 个字符?

从:

在此输入图像描述

到:

在此输入图像描述

我在文档中找不到任何对此的引用。

datepicker angular-material angular

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

TypeORM:使用自定义字段保存具有多对多关系的实体无法正确保存

我的用户和项目的多对多关系如下:

// project.entity.ts

@Entity()
export class Project extends BaseEntity {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  @OneToMany(type => ProjectUser, projectUser => projectUser.project)
  projectUsers: ProjectUser[];

  @CreateDateColumn({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP', readonly: true })
  createdAt: Date;

  @UpdateDateColumn({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' })
  updatedAt: Date;

  @DeleteDateColumn({ type: 'timestamp' })
  deletedAt: Date;

}
Run Code Online (Sandbox Code Playgroud)
// user.entity.ts

@Entity()
export class User extends BaseEntity {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  email: string;

  @Column()
  password: string;

  @OneToMany(type => ProjectUser, projectUser => projectUser.user)
  projectUsers: ProjectUser;

  @CreateDateColumn({ …
Run Code Online (Sandbox Code Playgroud)

postgresql typeorm nestjs

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

如何在运行时将参数传递给 TypeScript 装饰器?

我想在运行时将参数传递给 TypeScript 装饰器,以便装饰方法将使用该参数,原始方法不需要此参数才能运行,但装饰器需要。

我尝试通过将参数传递给装饰方法,然后在装饰器中的原始方法的参数中找到它来实现这一点。

例如我尝试过的:

// calling a decorated method (nestJS code)
@Get('')
@UseGuards(JwtAuthGuard)
async getAll(@CurrentUser() user: User): Promise<any[]> {
//current user is a nestJS decorator extracts the user from the http header
    const res = await this.whateverService.original(user);
    return res;
}


// @MyDecorator usage
@MyDecorator()
async original(@user user: User): Promise<any>{
  // return get all whatever
}


// @MyDecorator decorator
export function MyDecorator() {
    return function (target: Object, propertyName: string | symbol, descriptor: PropertyDescriptor) {

        const originalMethod = descriptor.value;

        // get …
Run Code Online (Sandbox Code Playgroud)

decorator typescript

5
推荐指数
0
解决办法
1086
查看次数

如何在 NestJs 中捕获 Typeorm 事务错误

我有一个用node.js和nestJs编写的服务器端,用typeorm进行查询。

我正在尝试按照此处建议的事务将一些查询包装到数据库中,并进行一些受 typeorm文档启发的更改,如下所示:

getManager().transaction(async transactionalEntityManager => {
    transactionalEntityManager.save<Entity>(newEntity)
    transactionalEntityManager.save<Entity1>(newEntity1)
});
Run Code Online (Sandbox Code Playgroud)

事务运行良好,如果出现错误则回滚数据库。测试这样:

getManager().transaction(async transactionalEntityManager => {
    transactionalEntityManager.save<Entity>(newEntity)
    throw 'There is an error'
    transactionalEntityManager.save<Entity1>(newEntity1)
});
Run Code Online (Sandbox Code Playgroud)

事务的执行在 graphQL Mutation 内部,因此如果出现问题,我应该向客户端返回错误,问题是我无法捕获事务中的错误。

尝试这样做:

  @Mutation(returns => Entity)
  async create(): Promise<Entity> {
    let entity = null;
    let error = null;
    getManager().transaction(async transactionalEntityManager => {
      try {
        entity = await transactionalEntityManager.save<Entity>(newEntity)
        await transactionalEntityManager.save<Entity1>(newEntity1);
      } catch (err) {
        error = err
      }
    })
    if (error) {
      return error
    }
    return entity
  }
Run Code Online (Sandbox Code Playgroud)

当我抛出错误时,我成功捕获它,但是当发生真正的错误时,我可以console.log()在服务器中处理它,但它永远不会返回到客户端。

javascript graphql typeorm nestjs

4
推荐指数
1
解决办法
9580
查看次数

在 TypeORM 和 MySQL 中返回插入查询的 ID

我是 TypeORM 的新手,我有问题要解决。我想知道如何在 INSERT 查询后检索 ID。我的实体中有带有 ID 号的列 @PrimaryGeneratedColumn(),我的代码看起来类似于:

await getConnection()
    .createQueryBuilder()
    .insert()
    .into(Test)
    .values([
        { firstName: "test", lastName: "test" }
     ])
    .execute();
Run Code Online (Sandbox Code Playgroud)

我想要归档的是在执行此函数后返回插入行的 ID。

编辑:我正在使用 MySQL。

那可能吗?

谢谢。

typescript typeorm

4
推荐指数
1
解决办法
8123
查看次数

是否可以调整 mat-form-field-outline 的厚度?

我正在尝试设置角度材质的输入样式,使其看起来与此应用程序中的所有输入相同。

是否可以调整明细表输入轮廓的粗细,使其与项目输入边框的宽度相同?

在此输入图像描述

css angular-material angular

4
推荐指数
1
解决办法
6173
查看次数