我在Angular 6应用程序中的VSCode中遇到以下错误:
ERROR in src/app/providers/dynamic-data/dynamic-data.service.ts(5,26): error TS1149: File name '/Users/gibranshah/repos/eva/EVA/src/app/model/endpoint.ts' differs from already included file name '/Users/gibranshah/repos/eva/EVA/src/app/model/Endpoint.ts' only in casing.
Run Code Online (Sandbox Code Playgroud)
告诉我dynamic-data.service.ts中的这一行:
import { Endpoint } from '../../model/endpoint';
Run Code Online (Sandbox Code Playgroud)
…是指名称为Endpoint.ts的文件。但是没有这样的文件。相反,我有endpoint.ts。endpoint.ts包含一个类似这样的类:
export class Endpoint {
…
}
Run Code Online (Sandbox Code Playgroud)
在一点上,endpoint.ts可能已被命名为“ Endpoint.ts”,但现在已经不复存在了。
我试图找到“ Endpoint.ts”,但很短:
M0168169000:gibranshah gibranshah$ find * -name "Endpoint.ts"
M0168169000:gibranshah gibranshah$
Run Code Online (Sandbox Code Playgroud)
VSCode是否缓存文件?是否有可能使用Endpoint.ts的缓存版本?我该如何解决这个问题?
我正在研究一个Angular 6应用程序,我被告知以下是一个反模式:
await someFunction().then(result => {
console.log(result);
});
Run Code Online (Sandbox Code Playgroud)
我意识到等待承诺链是毫无意义的.如果someFunction()返回一个promise,那么如果你正在等待它,则不需要一个promise链.你可以这样做:
const result = await someFunction();
console.log(result);
Run Code Online (Sandbox Code Playgroud)
但我被告知等待一个承诺链可能会导致错误,或者它会破坏我的代码中的东西.如果上面的第一个代码片段与第二个代码段完全相同,那么使用哪个代码片段至关重要.第一个片段引入了哪个危险,第二个片段没有?
我\xe2\x80\x99m想知道\xe2\x80\x99是否有一种简单的方法来验证Javascript中对象的形状。
\n\n现在,我有一个函数可以验证端点对象的形状,如下所示:
\n\nfunction validateEndpointShape(endpoint: any, hasId: boolean): boolean \n{\nreturn endpoint\n&& (hasId ? typeof endpoint.id === 'string' : true)\n&& typeof endpoint.name === 'string'\n&& typeof endpoint.description === 'string'\n&& typeof endpoint.url === 'string'\n&& GenericApiEndpointMethods[endpoint.method] !== undefined\n&& ApiEndpointTypes[endpoint.apiEndpointType] !== undefined\n&& endpoint.group\n&& typeof endpoint.group.groupPublicKey === 'string'\n&& typeof endpoint.group.groupName === 'string'\n&& typeof endpoint.reason === 'string'\n&& typeof endpoint.isPublic === 'boolean'\n&& typeof endpoint.isActive === 'boolean'\n&& authTypes[endpoint.authType] !== undefined\n&& Array.isArray(endpoint.parameters)\n&& Array.isArray(endpoint.headers);\n}\nRun Code Online (Sandbox Code Playgroud)\n\n这可能会变得麻烦且难以操作。我不想\xe2\x80\x99 不想为我创建的每个对象执行此操作。
\n\n当端点进入我们的云 Firebase 函数时,我们必须对其进行大量验证,以便我们知道何时拒绝不良数据。端点的形状是这些验证之一。
\n\n我尝试这样做:
\n\nDelete req.body.reason;\nreq.body[\xe2\x80\x98extraField\xe2\x80\x99] = \xe2\x80\x98xxx\xe2\x80\x99;\nConst endpoint: GenericApiEndpoint …Run Code Online (Sandbox Code Playgroud) 我有一个 vue.js 应用程序,我想在 vue-router 中查看导航历史记录。我的组件中有一个 beforeRouteLeave 钩子,我在那里放了一个断点。它到达断点,我在控制台中输入 this.$router 。它输出 $router 对象,但我没有看到代表我通过站点导航的历史的实际 url 堆栈。
这是我看到的:
currentRoute: (...)
app: Vue {_uid: 3, _isVue: true, $options: {…}, _renderProxy: Proxy, _self: Vue, …}
apps: [Vue]
options: {mode: "history", linkActiveClass: "active", routes: Array(47), scrollBehavior: ƒ}
beforeHooks: []
resolveHooks: []
afterHooks: [ƒ]
matcher: {match: ƒ, addRoutes: ƒ}
fallback: false
mode: "history"
history: HTML5History {router: VueRouter, base: "", current: {…}, pending: {…}, ready: true, …}
__proto__: Object
Run Code Online (Sandbox Code Playgroud)
(我可以扩展它,但我认为这太大了。)
实际的导航堆栈在哪里?
如果你想知道为什么我需要查看导航堆栈,那是因为,当我单击浏览器上的后退按钮时,我怀疑导航堆栈正在弹出,即使我的 beforeRouteLeave 钩子被调用而我没有调用 next ()。我在 beforeRouteLeave 中弹出一个带有选项的弹出窗口:“离开”或“留下”。如果用户点击“停留”,我就会停留在页面上。它似乎可以解决问题(它不会离开当前页面),但是如果我在浏览器上单击刷新,它会刷新上一页。或者,如果我说“停留”一次,然后再次单击后退按钮并说“离开”,我将返回两页。
所以我想看看导航堆栈发生了什么。不管 …
我在 Firebase 数据库中工作。我需要限制字符串字段的长度。我怎么做?
字段的路径是:
COL1 / DOC1 / / /描述
也就是说,从集合 col1 开始,然后到 doc1,然后对于 doc1 下的所有集合,以及该集合下的所有文档,描述字段需要限制为 100 个字符。
有人可以向我解释如何做到这一点吗?谢谢
我正在使用 angular 6 应用程序。我有一个 textarea,我想在页面加载后立即关注它。我不能这样做。
这是页面的样子:
<div fxLayoutAlign="begin">
<button mat-button color="primary" [routerLink]="['/Administration']">
<i class="far fa-arrow-alt-circle-left"></i> Back to Administration
</button>
</div>
<div class="app-loading" *ngIf="_loading">
<mat-spinner diameter=100></mat-spinner>
</div>
<div *ngIf="!_loading">
<div class="knowledgeBody">
<div *ngIf="_mode === 'view'">
{{ _knowledgeText }}
<div fxLayoutAlign="end">
<button mat-button (click)="edit_clicked()" disabled="{{ _knowledgeText.trim().length === 0 }}">
<i class="fas fa-edit"></i> Edit
</button>
</div>
</div>
<div *ngIf="_mode !== 'view'">
<textarea matInput [(ngModel)]="_knowledgeText" cdkTextareaAutosize #knowledgeTextarea>
{{ _knowledgeText }}
</textarea>
<div fxLayoutAlign="end">
<button mat-button (click)="save_clicked()" disabled="{{ _knowledgeText.trim().length === 0 }}">
<i class="fas fa-save"></i> …Run Code Online (Sandbox Code Playgroud) angular ×2
javascript ×2
async-await ×1
caching ×1
elementref ×1
filenames ×1
firebase ×1
focus ×1
hook ×1
promise ×1
shapes ×1
string ×1
validation ×1
vue-router ×1
vue.js ×1