小编TmT*_*ron的帖子

Material Angular 滚动到 mat-list 上的元素

我有一个包含多个元素的 Angular Material 列表,其中可以选择其中之一。

当我加载此列表时,我想将列表向上滚动到所选元素,以使其更加可见。有什么选择吗?

我正在考虑在 ngOnInit 中检查是否选择了项目,但我真的不知道如何将此列表滚动到该项目。

注意:不应滚动整个页面,只应滚动列表中的元素。

组件.html

    <mat-nav-list>
        <mat-list-item *ngFor="let item of items" (click)="itemClick(item)"
            [ngClass]="item.selectedClass">
            {{item.someValue}}
        </mat-list-item>
    </mat-nav-list>
Run Code Online (Sandbox Code Playgroud)

组件.ts

    private itemClick(item: Item): Observable<any> {
        if (item) {
            this.something = item;
            this.items.forEach(item => {
                if (item && item.name === item.name) {
                    item["selectedClass"] = "item-selected";
                } else {
                    item["selectedClass"] = undefined;
                }
            });
        } else {
            this.something = null;
            this.items.forEach(item => {
                    item["selectedClass"] = undefined;
            });
        }

        return of(null);
    }
Run Code Online (Sandbox Code Playgroud)

scroll material-design angular-material angular

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

如何更改存储在 Postgres 中所有记录的 JSON 对象中的键名称

在名为的表中,priceTables我存储在名为valueJSON 对象的列中,该对象看起来类似于以下内容:

{
  "price": {
    "values": {
       "tax": 1.59
     }
  }
}
Run Code Online (Sandbox Code Playgroud)

并希望运行查询来迁移数万条记录以将名称更改valuesbreakdown。所以这会导致

{
  "price": {
    "breakdown": {
      "tax": 1.59
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

对于实现此目的的 Postgres 查询有什么建议吗?

sql postgresql

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

如何更改块时间间隔?

当块时间间隔太大时,我们如何更改它?

用例:

  • 我们有一个现有的超表,我们将其设置chunk_time_interval为 1 个月(当使用create_hypertable()时)。
  • 过去几个月这很好,但现在数据速率将增加 1000 倍

例如,我认为我们不能只使用set_chunk_time_interval,因为它不会影响当前块:因此,当数据速率增加时新的月份块刚刚开始时,该块会变得巨大,并且只有较新的块才是正确的-大小。

那么处理这种情况的最佳方法是什么?

因此需要澄清的是:我们想要一个超表,其中旧数据的块大小与新数据不同。

timescaledb

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

如何为本地和远程主机设置不同的python解释器

用例:

剧本1

  • 当我们第一次连接到远程主机时,远程主机已经安装了一些 python 版本 - 自动发现功能会找到它
  • 现在我们在远程主机上安装ansible-docker
  • 从现在开始:ansible-docker 文档建议使用ansible_python_interpreter=/usr/bin/env python-docker

剧本2

我们再次连接到同一主机,但现在我们必须使用/usr/bin/env python-dockerpython 解释器

做这个的最好方式是什么?

目前我们设定的ansible_python_interpreter剧本级别为Playbook 2

---
- name: DaqMon app
  vars:
  - ansible_python_interpreter: "{{ '/usr/bin/env python-docker' }}"
Run Code Online (Sandbox Code Playgroud)

这是可行的,但这也会改变本地操作的 python 解释器。因此本地操作将会失败,因为 (python-docker本地不存在)。

  • 当前的解决方法是显式指定 ansible_python_interpreter每个本地操作,这是乏味且容易出错的

问题

  • 理想的解决方案是,如果我们可以将'/usr/bin/env python-docker'后备添加到terpreter-python-fallback - 但我认为这是不可能的
  • 有没有办法只为远程主机设置 python 解释器 - 并保留本地主机的默认值?
  • 或者是否可以显式覆盖本地主机的 python 解释器?

ansible

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

如何使用Java 7和Maven在Eclipse Kepler中运行JSR269 annotaion处理器

我正在使用eclipse Kepler并且编译器设置为使用Java 7.我的类路径中有一个JSR269兼容的注释处理器(在maven容器中).

运行此注释处理器的最简单方法是什么?

实际上我希望Eclipse编译在构建期间自动运行这个注释处理器,因为它符合JSR 269 - 但事实并非如此.为什么不 - 是出于性能原因?

注意:命令行中的maven构建工作正常.

经过一些研究后发现,这可以在项目属性(Java编译器 - 注释处理 - 工厂路径)中进行配置.这里的问题是我当然想要使用已经在类路径上的注释处理器的.jar文件(在Maven容器中).我怎么能参考呢?我发现没有办法做到这一点.

我想出的最好的方法是使用M2_REPO变量,然后手动将路径附加到处理器,如下所示:

M2_REPO/com/gwtplatform/gwtp-processors/1.0.1/gwtp-processors-1.0.1.jar
Run Code Online (Sandbox Code Playgroud)

这显然存在处理器现在在2个地方指定的问题:在maven pom文件和eclipse项目中.怎么避免这个?

java eclipse maven annotation-processing m2e

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

IDEA:如何处理"模块'A'源不依赖于模块'B'源"警告

如何判断忽略IDEA永久忽略此警告?

Module 'A' sources do not depend on module 'B' sources
Run Code Online (Sandbox Code Playgroud)

注意:

  • 基本上警告是正确的,因为A不使用B的任何源代码
  • 但是B包含一些注释处理器逻辑,这在编译A时是必需的
  • 因此,B声明对A的依赖(我使用maven并将范围设置为provided- 它工作得很好)
  • Inspection Results对话中,我可以选择"排除" - 但这不是永久的:即当我再次开始分析时,警告将重新出现
  • 我也不想禁用所有内容的通知

我发现,唯一的解决方法是真正添加对A代码的引用(例如,在一个简单的假测试方法中) - 但我希望有更好的方法.

dependencies intellij-idea code-inspection

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

如何使用不同的 tsconfig 文件进行测试?

在我的项目中,我使用了 2 个不同的 tsconfig 文件

  • tsconfig.json
  • tsconfig.specs.json - 用于检测

我如何告诉 Intellij Idea 同时使用两者?
即在Settings- Langauges & Frameworks-TypeScript我可以在不同的Compile scopes之间切换,但Options不是每个编译范围(但每个项目只有一次)。

笔记:

在此处输入图片说明

intellij-idea typescript

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

Chrome 显示旧的 SSL 证书

我在服务器上使用让我们加密证书。证书会自动更新并更新 server-config。

问题:当我在 Chrome 中打开网页时,它显示证书有效,但证书对话框仍显示旧证书信息(请参阅从日期起生效): 在此处输入图片说明

当我以隐身模式打开页面时,浏览器显示正确的/new 证书 在此处输入图片说明

另一个奇怪的事情:

  • 使用CTRL+F5刷新页面后,Chrome 显示正确信息
  • 但是当我现在关闭标签并打开一个新标签时,旧信息将再次显示!?

问题:

  1. 这可能是 Chrome 中的错误吗?即可能它缓存了证书信息太久
  2. 或者我的网页/服务器可以做些什么来更新这些信息?

ssl google-chrome lets-encrypt

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

如何设置与 statement_timeout 相关的 query_timeout?

我们可以为Client设置 2 个超时时间:

  • statement_timeout: 查询语句超时前的毫秒数,默认为无超时
  • query_timeout 查询调用超时前的毫秒数,默认为无超时

我是这样理解的:

  • statement_timeout将被传递到数据库中(见Postgres的-文档:statement_timeout),当一份声明中花费比这更长的时间,该数据库将中止查询,并返回一个错误
  • 数据库对query_timeout. 这由驱动器 ( node-postgres)处理。当达到此超时时间时,node-postgres将停止侦听响应,但数据库可能仍在执行查询

问题 1是否应该将查询超时设置得比语句超时稍长?

我认为是因为那时:

  1. 当查询真的花费太长时间时,数据库将中止查询并将错误返回给客户端
  2. 当应用程序在查询超时内没有从服务器得到任何响应时,应用程序将抛出超时错误
    问题 2:这可能是什么原因?例如,TCP/IP 连接问题?

交易

我们在使用事务时是什么情况?
例如,当我们查看文档中的示例时

  try {
    await client.query('BEGIN')
    const queryText = 'INSERT INTO users(name) VALUES($1) RETURNING id'
    const res = await client.query(queryText, ['brianc'])
    const insertPhotoText = 'INSERT INTO photos(user_id, photo_url) VALUES ($1, $2)'
    const insertPhotoValues = [res.rows[0].id, 's3.bucket.foo']
    await client.query(insertPhotoText, insertPhotoValues)
    await …
Run Code Online (Sandbox Code Playgroud)

node-postgres pg-promise

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

typeorm 可以在应用程序启动时验证模式吗?

我知道typeorm可以创建整个数据库架构,甚至同步与实体定义数据库模式(见synchronize连接选项

但在生产中,我想要求 typeorm 验证现有数据库模式是否与应用程序启动时的实体定义匹配:
例如,如果表、列、索引等存在

这可能吗?

typeorm

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