小编Geo*_*43g的帖子

为什么表单错误的 getter 在我的 Angular Reactive Form 组件模板中不起作用,但直接引用却可以?

快速提问。这是那些令人烦恼的小错误之一。我在延迟加载的注册模块中有一个 Angular 反应形式。代码结构如下:

TS

get email() {
  return this.myForm.get('email');
}
// This code works from within the component, but not when referenced from within the template.
Run Code Online (Sandbox Code Playgroud)

超文本标记语言

<div class="errors" *ngIf="email.errors?.required && email.touched">Must enter email</div>
Run Code Online (Sandbox Code Playgroud)

在模板中,div 永远不会显示,因为即使存在错误,表达式也永远不会计算为 true。我已经检查过控制台。

更令人困惑的是,我在 中使用 getter 没有问题component.ts,事实上,我的方式console.log是通过编写console.log(this.email.errors). 这很好用。但模板中没有。

我的混乱解决方案是直接访问错误,这确实有效:

<div class="errors" *ngIf="myForm.controls.email.errors.required && myForm.controls.email.touched">
  Must enter email
</div>
// This works! As you can see the expression is very long and messy.
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏!

typescript angular angular-reactive-forms angular-template-form

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

滚动时标题滞后

我试图在网上找到一些关于此的内容,虽然这是一个小问题,但我觉得它会影响网站体验.此外,根据您的计算机的浏览器或速度,您可能不会注意到此问题.

问题是我的网站上有一个固定的标题.当向上或向下滚动时,它似乎滞后或拖动......它保持固定在顶部,但是当你滚动它时,它会以不同的速度滚动和拖动.

你可以在这里看到自己.

它正在努力 - 似乎只发生在投资组合页面上,而不是主页上.

html css

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

如何在一个 vscode 工作区中定义/引用多个tasks.json 文件?

我有一个functions/目录,我通常会为其打开一个全新的vscode窗口。它定义了自己的tasks.json 文件。

但我希望能够从根目录 vscode 窗口以及使用functions/ 作为根目录打开的窗口运行存储在functions/.vscode/tasks.json 文件中的任务。

我想我可以合并这两个文件,然后在两个单独的 vscode 窗口中打开相同的根目录作为工作区,然后导航到其中一个窗口中的函数子目录。这样,tasks.json 将在两个 vscode 窗口之间共享。

但这似乎不是最好的解决方案。有没有一种方法可以让 Vscode 读取多个tasks.json 文件?是否可以在 vscode 设置中的某处引用第二个(在functions/.vscode/tasks.json 中找到)?

visual-studio-code

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

Firestore 安全规则可防止在文档中写入任意字段

Firebase Firestore 阻止客户端在文档中创建字段

根据上面的链接,以前有人问过这个问题,但没有正确回答。

我似乎无法弄清楚如何防止用户将垃圾数据上传到文档中的随机字段名称。尽管对“架构”中的现有字段执行规则很容易,但我还没有发现任何可以阻止用户更新文档的内容

const payload = {
 random123: 5,
 anotherRandom123: 5
}
Run Code Online (Sandbox Code Playgroud)

我知道可能可以计算字段总数并限制它们,但是,如果文档碰巧没有填充每个字段,您仍然可以写入垃圾数据。您甚至可以使用in运算符和列表函数检查某些字段名称。我可以想象这样做的唯一方法是强制文档始终填充您可能需要的所有字段,强制执行静态字段数,然后检查以确保每个字段名称都存在/正确。

如果文档具有可选字段,这将不起作用。

这可能吗?解决这个问题的最佳方法是什么?

firebase firebase-security google-cloud-firestore

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

Typescript:映射类型,使除所选属性之外的每个属性均为只读

我遇到了一个挑战,我不想继续重写多个接口。

我需要一个完全可写的接口,并且还需要该接口的“副本”,其中除我选择可写的字段外,所有字段都是只读的。

Typescript 具有可以允许此操作的映射类型。

types typescript mapped-types

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