问题标签 [angular-compiler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - Angular 7+:在运行时从 REST API 获取的动态用户内容 (HTML) 中的渲染指令
我有一个应用程序可以获取用户内容,例如博客内容,这些内容在服务器上保存为 HTML。
我需要渲染它,它可能有自定义指令,如
我需要在这个动态返回的用户内容上呈现扰流板指令。
我从 SO 和广泛的搜索中了解到,一种方法是在构建过程中启用 JIT(无 AOT)(buildOptimizer:false,并在 polyfills.ts 中导入'core-js/es7/reflect',创建模块/组件动态使用 JIT)以很长的复杂方式(可能会在角度版本升级时中断)
有没有其他我不知道的动态呈现我的用例的方法?
angular - 从角度 8 的模块中获取注入器
问题:
我正在为角度的非路由模块设置延迟加载。在我使用的第 7 版中NgModuleFactoryLoader
,它的功能load
是延迟加载模块并获取模块的第一个入口点(以防万一)
但是在 Angular 8NgModuleFactoryLoader
中已弃用,所以我必须以这种方式加载模块:
这里的问题是我无法在新的延迟加载中检索工厂并在此处获取提供者(IVY 的想法之一 - 没有工厂)。
我已经尝试过的:
第一个解决方案(仅使用不适合我们的 JIT 编译器,因为我使用 AOT 编译器进行生产)
第二种解决方案(肮脏且未完全检查。它正在使用ngInjectorDef
IVY 的新功能并且还没有任何描述的 API):
ngInjectorDef
- 是一个静态模块类属性,由 Angular 添加,具有工厂、提供者和导入属性。
资料来源:
- https://netbasal.com/the-need-for-speed-lazy-load-non-routeable-modules-in-angular-30c8f1c33093(延迟加载不可路由的模块直到角度 8)
- https://herringtondarkholme.github.io/2018/02/19/angular-ivy/(IVY预览 - 见章节
No NgFactory file anymore
) - https://blog.angularindepth.com/automatically-upgrade-lazy-loaded-angular-modules-for-ivy-e760872e6084(描述 Angular < 8 和 Angular 8 中的延迟加载之间的差异。重要部分 - 从 NgModule 到 NgModuleFactory 与AOT编译器,现在基本上是我的问题)
angular - 如何知道 Angular 编译的 /dist 是否与 /src 中的源代码匹配?
我有一个已编译的“dist”文件夹,我想知道它是否与源代码匹配或者是不同的版本。我该怎么做?
angular - 如何将 AsyncScheduler 与自定义操作一起使用
当页面不可见时,我的 RXJS 流需要以 250 毫秒的间隔处理数据块。Chrome 将这些时间间隔限制为 1000 毫秒。为了解决这个问题,我实现了一个在 web worker 中使用 setInterval 的 AsyncAction。我使用它如下:
export const customScheduler = new AsyncScheduler(WebWorkerAsyncAction)
然而,这并非没有问题。使用 JIT 编译它时,它工作正常。使用 AOT 编译它时(另一个项目要求)它适用于第一次编译,但是之后的每第二次编译都会失败,并出现以下错误:
错误:错误:无法从 /node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts 解析 ./ TsCompilerAotCompilerTypeCheckHostAdapter.fromSummaryFileName (\node_modules@angular\compiler-cli\src\transformers\compiler_host.js:272:23 ) 在 AotSummaryResolver.fromSummaryFileName (\node_modules@angular\compiler\bundles\compiler.umd.js:26320:30) 在 \node_modules@angular\compiler\bundles\compiler.umd.js:24481:126 在 Array.map ()在 FromJsonDeserializer.deserialize (\node_modules@angular\compiler\bundles\compiler.umd.js:24481:41) at deserializeSummaries (\node_modules@angular\compiler\bundles\compiler.umd.js:24086:29) at AotSummaryResolver._loadSummaryFile (\node_modules@angular\compiler\bundles\compiler.umd.js:26370:26) 在 AotSummaryResolver。resolveSummary (\node_modules@angular\compiler\bundles\compiler.umd.js:26328:22) 在 ToJsonSerializer.loadSummary (\node_modules@angular\compiler\bundles\compiler.umd.js:24310:48) 在 ToJsonSerializer.visitStaticSymbol ( \node_modules@angular\compiler\bundles\compiler.umd.js:24285:32) 在 ToJsonSerializer.visitOther (\node_modules@angular\compiler\bundles\compiler.umd.js:24250:34) 在 visitValue (\node_modules@angular \compiler\bundles\compiler.umd.js:2438:24) at \node_modules@angular\compiler\bundles\compiler.umd.js:2451:54 at Array.map () at ToJsonSerializer.ValueTransformer.visitArray (\node_modules@ angular\compiler\bundles\compiler.umd.js:2451:24) 在 visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2429:28)loadSummary (\node_modules@angular\compiler\bundles\compiler.umd.js:24310:48) 在 ToJsonSerializer.visitStaticSymbol (\node_modules@angular\compiler\bundles\compiler.umd.js:24285:32) 在 ToJsonSerializer.visitOther ( \node_modules@angular\compiler\bundles\compiler.umd.js:24250:34) at visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2438:24) at \node_modules@angular\compiler\bundles \compiler.umd.js:2451:54 at Array.map () at ToJsonSerializer.ValueTransformer.visitArray (\node_modules@angular\compiler\bundles\compiler.umd.js:2451:24) at visitValue (\node_modules@angular\编译器\捆绑包\compiler.umd.js:2429:28)loadSummary (\node_modules@angular\compiler\bundles\compiler.umd.js:24310:48) 在 ToJsonSerializer.visitStaticSymbol (\node_modules@angular\compiler\bundles\compiler.umd.js:24285:32) 在 ToJsonSerializer.visitOther ( \node_modules@angular\compiler\bundles\compiler.umd.js:24250:34) at visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2438:24) at \node_modules@angular\compiler\bundles \compiler.umd.js:2451:54 at Array.map () at ToJsonSerializer.ValueTransformer.visitArray (\node_modules@angular\compiler\bundles\compiler.umd.js:2451:24) at visitValue (\node_modules@angular\编译器\捆绑包\compiler.umd.js:2429:28)visitOther (\node_modules@angular\compiler\bundles\compiler.umd.js:24250:34) 在 visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2438:24) 在 \node_modules@angular\compiler \bundles\compiler.umd.js:2451:54 at Array.map () at ToJsonSerializer.ValueTransformer.visitArray (\node_modules@angular\compiler\bundles\compiler.umd.js:2451:24) at visitValue (\node_modules@角度\编译器\bundles\compiler.umd.js:2429:28)visitOther (\node_modules@angular\compiler\bundles\compiler.umd.js:24250:34) 在 visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2438:24) 在 \node_modules@angular\compiler \bundles\compiler.umd.js:2451:54 at Array.map () at ToJsonSerializer.ValueTransformer.visitArray (\node_modules@angular\compiler\bundles\compiler.umd.js:2451:24) at visitValue (\node_modules@角度\编译器\bundles\compiler.umd.js:2429:28)24) 在访问值 (\node_modules@angular\compiler\bundles\compiler.umd.js:2429:28)24) 在访问值 (\node_modules@angular\compiler\bundles\compiler.umd.js:2429:28)
我认为这是使用“内部”RXJS 包的一个怪癖,但如果不依赖 AsyncHandler,我看不到解决方法。
angular - 为什么我的 Angular CLI 找不到模块“@angular/compiler-cli/ngcc”?
在通过成功安装 PWA 组件以使我的 Angular 应用程序成为渐进式 Web 应用程序ng add @angular/pwa --project myProjectName
后,我似乎无法再启动我的应用程序了。
当我尝试通过我启动我的应用程序时,ng serve -o
我收到此错误消息:
发生未处理的异常:找不到模块'@angular/compiler-cli/ngcc'
有关详细信息,请参阅“/tmp/ng-JO4KFv/angular-errors.log”。
我尝试卸载 Angular CLI 并根据此处的说明重新安装它的最新版本,但这根本没有帮助。
如何解决此问题并使其正常工作?
angular - 角度传递数据到动态创建和编译的组件
动态创建基本输入组件
my-input
是一个输入,它实现了ControlValueAccessor
并且可以分配一个formControlName
指令。
因此,将其传递给formControlName=${config.name}
:
在我的动态组件中,传递了以下内容,以便控件找到他的父级:
详细:
后来在 DOM 中解析为:
问题是当我尝试将任何对象配置数据传递给模板中的子组件时:
const template = `<${compTag} formControlName="${config.name}" config=${config}></${compTag}>`;
确实传递给config
组件,但没有正确解析,并作为config: [Object object]
有没有人偶然发现?
css - Angular 7 SCSS 不保留 CSS 自定义属性
我正在尝试在我的 Angular 7 应用程序中使用 CSS 自定义属性,但遇到了构建到 css 会摆脱设置为 CSS 变量的属性的问题。
SCSS
构建为:
如果我使用类似var(--my-test-var, purple);
then的后备选项.testclass123
也将具有属性background: purple;
我的 Angular 版本是 7.2.7 和 Angular Material 7.3.7
angular - 库模块中的 Angular APP_INITIALIZER 生成元数据编译时错误:不支持 Lambda
这是我的 ng 库模块代码
构建时:
如果我将APP_INITIALIZER
提供程序移到应用程序模块中,那很好,但我不希望应用程序必须具备这些知识。
javascript - 将数据传递给动态创建的角度模块和组件
我需要将数据传递给动态创建的角度模块,例如 id 或 JSON,我的控制器代码是这样的。
逻辑解释 - API 提供页面布局,如果主要模块是第一个或次要模块(还有更多无法由 ngif 处理)所有模块都有不同的设计主要和次要没有样式,这也由API 也是。id是决定该页面所有设计的关键
为什么我这样做是因为我有由 API 决定的页面布局,并且每个模块都有不同类型的具有不同设计的组件(该代码已被省略)这就是我在 HTML 中呈现的方式
有什么方法可以通过路由器将数据传递给模块或与其对应的组件 JSON 中的 id 值或 JSON 本身,我可能缺少的另一种语法甜味剂,服务或编译器本身我一直被困在这里有时任何帮助将不胜感激,或者是否有任何其他方法可以在没有 IVY 的角度版本 8 中做到这一点提前致谢。
angular - Angular编译xml就像它会是html
我想创建一个可以有模板的动态 xml 数据源。因为我已经在使用 Angular 并且有很多自定义管道,所以我想使用 Angular 语法并让 Angular 为我进行转换和格式化。所以基本的例子:
结果将是:
所以我可以准备一个带有“原始”数据的 XML,然后让 Angular 进行映射、翻译和格式化。
这有可能吗?