我在同一个Angular项目中有多个应用程序.我尝试运行时从Angular 5升级到6:
ng serve --app myAppOne
我收到此错误:
Unknown option: '--app'
似乎--app
不再支持这些选项.指定在Angular 6中运行的应用程序的最佳方法是什么?
在我的模板中,我有一个字段和两个按钮:
<div class="btn-plus" (click)="add(1)"> - </div>
<div class="txt"> {{ myValue }} </div>
<div class="btn-minus" (click)="add(-1)"> + </div>
Run Code Online (Sandbox Code Playgroud)
在我的组件 .ts 文件中,我有:
add(num) {
this.myValue +=num;
this.update(); // async function which will send PUT request
}
Run Code Online (Sandbox Code Playgroud)
该this.update()
函数myValue
在一个大的 JSON 对象中放入适当的字段并将其发送到服务器。
问题:当用户在短时间内点击加号/减号按钮 10 次时,请求将被发送 10 次。但我只想发送一次请求 - 最后一次点击后 0.5 秒。怎么做?
在我的 Angular 8 TypeScript 代码中,我直接导入 lodash (例如import * as _ from 'lodash';
)。在我的package.json
我有"lodash": "^4.17.15"
。
我决定安装该@types/lodash-es
模块并以这种方式导入特定的 lodash 函数(例如import { map } from 'lodash-es';
)。它更好,因为它节省了运行时空间,并且还使用标准的 Angular/TypeScript 导入机制。
但是,现在当我运行构建时,我收到此错误:
Module not found: Error: Can't resolve 'lodash-es'
我该如何修复这个错误?
角fileReplacements
如果它们出现在不替换文件assets
。此代码不适用于 Angular 9,但适用于版本 8:
"assets": [
"src/web.config"
]
...
"fileReplacements": [
{
"replace": "src/web.config",
"with": "src/configs/web.stage.config"
}
]
Run Code Online (Sandbox Code Playgroud)
如何修复?
我在父组件中有一个这样的变量:
父组件
export class ParentComponent {
variable = {};
varExample = false;
@ViewChild('child') child: ChildComponent;
someFunction () {
this.variable['id'] = {};
for (let i = 0; i < 10; i++) {
this.variable['id'][i] = i*2;
}
this.varExample = true;
}
otherFunction () { // called when i click a button
this.someFunction ();
console.log(this.child.variable); // {}
console.log(this.child.varExample); // true
this.child.initVars();
}
}
Run Code Online (Sandbox Code Playgroud)
父 HTML
<app-child #child [variable]="variable" [varExample]="varExample"></app-child>
Run Code Online (Sandbox Code Playgroud)
子组件
export class ChildComponent {
@Input() variable: any;
@Input() varExample: boolean;
initVars() {
console.log(this.variable); …
Run Code Online (Sandbox Code Playgroud) 我有一个示例应用程序,我使用cdk-Dragging
. 问题是当我拖动它时,cdk-drag-preview
正在应用一个名为的类并使拖动的行变小。
在上面您可以看到,当我尝试拖动时,拖动的行会变得越来越小,直到我将其放下。我希望它和其他的一样大,永远不会改变。我尝试向此类添加属性,但无法使其工作。我怎样才能保持这一行的宽度?
这是我在 stackblitz 上尝试过的:
使用 Angular 11 CLI 时,当我生成新组件时,我可以指定选项--skip-tests
以避免.component.spec.ts
在此阶段生成 a 。
ng generate component --name asdf --module app --skip-tests --dry-run
Run Code Online (Sandbox Code Playgroud)
当我生成一个包含新组件(--route
选项)的新模块时,我无法指定该--skip-tests
选项。
ng generate module --name asdf --module app --route asdf --routing true --skip-tests --dry-run
Run Code Online (Sandbox Code Playgroud)
如果我这样做,我会收到错误:
Unknown option: '--skip-tests'
Run Code Online (Sandbox Code Playgroud)
在这种情况下,是否有另一种方法可以跳过生成测试,或者只是不支持generate module
?
我正在尝试理解并尝试 Angular 生命周期挂钩。
关于ngOnDestroy
,在官方文档中是这样说的:
当指令、管道或服务被销毁时调用的生命周期挂钩。用于实例销毁时需要进行的任何自定义清理。
因此,我可以ngOnDestroy
在重定向页面时触发该事件。ngOnDestroy
奇怪的是,当我重新加载页面时,我无法触发。当我重新加载页面时,它不会破坏我的指令和服务吗?为什么ngOnDestroy
页面重新加载时不触发?
在我的项目中,我将 SCSS 设置为样式。现在从 Angular 8 更新到 9 后,当我使用 CLI 生成新组件时,会生成一个 CSS 文件,我希望生成一个 SCSS 文件。
angular ×8
typescript ×2
angular-cdk ×1
angular-cli ×1
css ×1
debounce ×1
input ×1
lodash ×1
package.json ×1
rxjs ×1
sass ×1