我试图从我的Web项目(Visual Studio 2015社区)中删除打字输入,并通过package.json中的新NPM @types(typescript 2.0.3)安装d.ts文件:
"dependencies": {
"@types/angular": "^1.5.8",
"@types/angular-cookies": "^1.4.2",
"@types/angular-local-storage": "^0.1.33",
"@types/angular-material": "^1.1.37",
"@types/angular-translate": "^2.4.33",
"@types/lodash": "^4.14.36"
}
Run Code Online (Sandbox Code Playgroud)
Visual Studio的IntelliSense之前很好地处理了打字,因为我在VS项目中包含了typings文件夹.NPM将类型安装到node_modules/@types文件夹中.现在这是我的问题.我真的不想node_modules在VS项目中包含任何内容.
node_modules文件夹应该可以被删除并由npm随意重新创建.如果没有将它们包含在项目中,Visual Studio将无法识别已安装的类型!我想我可以创建一个带有///引用标签的文件,但是在安装/删除打字时我必须手动维护这个文件.
是否有任何推荐的方法使VS IntelliSense工作?
想象一下 Angular 中的标准情况:您需要从服务器获取某些实体 ID 的数据。实体 ID 是一个信号,您希望获取的数据也成为信号。
像这样的事情感觉很自然:
@Component({
selector: 'my-app',
standalone: true,
imports: [CommonModule],
template: `
<code>{{roles()}}</code>
`,
})
export class App {
userId: Signal<string> = signal('userA');
roles = computed(() => toSignal(getRoles(this.userId())));
}
//this could be api service sending http request
const getRoles = (userId: string) => {
return userId === 'userA' ? of([1, 2, 3]) : of([1]);
};
Run Code Online (Sandbox Code Playgroud)
但浏览器控制台出现运行时错误:
Error: NG0203: toSignal() can only be used within an injection context such as a constructor, a factory function, a …Run Code Online (Sandbox Code Playgroud) 我现在在最新版本 12.6.5 的 NX Monorepo 中运行 Angular 12.1.0。很长一段时间(不仅仅是上一个版本)我注意到系统中角度组件的控制台日志被标记为来自instrument.js文件而不是真正的 ts 文件。
我正在尝试调查它,但它不会在新生成的 NX 存储库中发生。我不知道该把搜索重点放在哪里。Webpack 的东西隐藏在 Angular CLI 后面。谁能给我提示吗?
假设我们有一个标准的浏览器 Angular(现在是 v.11)仪表板应用程序:仪表板包含小部件,这些小部件是从 API 获取数据并显示值(KPI、图表、表格等)的组件。
问题是:有没有办法在服务器上呈现小部件并将它们注入仪表板 DOM 中?
由于这些小部件是 Angular 组件,我的想法是 Angular 是否可以在服务器上运行,将组件编译为静态 DOM 并将其注入运行 Angular 应用程序的浏览器。
我试过 Universal 但那真的是为了预渲染第一页,不认为它对这种情况有好处,或者?
谢谢!