angular - 如何将具有非纯函数的大型组件类(1300+ 行)划分为多个打字稿文件
问题描述
我们的项目包含 2-3 个大型有状态组件,有时跟踪/保持清洁并订购所有定义的功能并不是最有趣的。从其他文件导入助手(纯函数)不是问题,但是我们的一些较大的函数直接作用于保存在所述组件类中的状态和变量。我们将这些状态/对象保存在它们各自的组件中而不是服务中,因为它们可能会变得非常庞大并且不会在应用程序范围内使用,它们仅限于它们自己的实例。我们如何将它们移动到单独的文件中,以便它们的行为方式有点类似于:
(为了说明,功能被简化和缩短)
a.component.ts
import { Component, OnInit } from '@angular/core';
import * as L from 'leaflet';
import { B } from './a.b.ts';
@Component({
selector: 'app-a',
templateUrl: './a.component.html',
styleUrls: ['./a.component.scss']
})
export class AComponent implements OnInit {
constructor(private b: B) {}
map: L.Map;
ngOnInit() {
this.map = new L.Map(...);
}
onUploaded(...) {
this.b.loadAssets();
}
}
绝对值
import { AComponent } from './a.component.ts';
export class B extends AComponent {
loadAssets() {
...
...addTo.(this.map)
this.map.flyTo(...)
}
}
^ 这会引发以下错误:angular Cannot access AComponent before initialization
Angular 的文档指出DI 中的依赖项不一定必须是服务,也可以是函数,但我找不到任何示例说明如何实现这一点,我不确定这是否是我们需要的. 非常欢迎任何帮助!
解决方案
推荐阅读
- xml - 使用 xmllint 合并不同数量的 Xpath 节点
- android - 如何在 android 中使用 Rxjava 发出的数据处理 webview?
- python - 如何使用 lambda 函数执行此操作
- json - 如何在 Swift 中从 JSON 返回集合视图 numberOfItemsInSection 中的 Max 10 个项目
- qt - QtWebEngineProcess 启动后立即关闭
- react-native - 构建 JavaScript 包失败。node_modules\expo\AppEntry.js:Transformer.transform 不是函数
- .net - 我需要在模拟单 CPU 机器的 Visual Studio 2019 中调试 WinForms 应用程序
- airflow - 运行中的气流 dag 问题 - 循环运行计划
- javascript - $_POST 仅包含部分提交的数据
- javascript - React Native Firebase 多张图片上传问题