小编Joh*_*int的帖子

Javascript es6覆盖静态属性

试用ES6并尝试创建一个具有静态属性和函数的类进行解析.然后我想为我正在解析的每个不同类型扩展基本解析器.不确定我是否正在做反模式,但我无法覆盖静态属性.

这是我的基础解析器

class Module {

  static name = 'Default Module'
  static version = {major:10000, minor: 10000}

  static checkVersion({majorVersion = 10000, minorVersion = 10000}) {
    if(this.version.major !== majorVersion || this.version.minor > minorVersion) {
      throw `${this.name} requires version ${this.version.major}.${this.version.minor} got ${majorVersion}.${minorVersion}`;
    }
  }

  static parse(data) {
    try {
      this.checkVersion(data);
      return this.internalParser(data);

    } catch (e) {
      throw e;
    }
  }

  static internalParser(data) {
    throw `${this.name} has no parser implemented`;
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我想像这样延伸

class ExtendedModule extends Module {
  static name = 'Extended';
  static version …
Run Code Online (Sandbox Code Playgroud)

javascript static extends class ecmascript-6

5
推荐指数
2
解决办法
6452
查看次数

Angular 5循环相关性:组件中的组件

我目前在一个项目中,我们有一个动态的“表单” /内容模型,该模型具有一个包含字段和占位符的模块,占位符可以包含更多模块,从而为我们提供了递归/灵活的数据模型。

现在进行渲染,我们创建了一个用于渲染模块的组件,针对不同的字段类型进行了动态渲染,然后创建了一个for循环来渲染占位符,这是它自己的组件。

我得到的循环依赖是 module.component -> placeholder.component -> module.component

可以在以下plunkr中找到对此的快速设置:https ://plnkr.co/edit/ieV9rjJ8MZLzFpzPaj3L

运行ng serve没有错误,但ng build --prod确实

WARNING in Circular dependency detected:
src/app/module.component.ngfactory.js -> 
src/app/placeholder.component.ngfactory.js -> 
src/app/module.component.ngfactory.js
Run Code Online (Sandbox Code Playgroud)

我猜这是因为ng build --prodAOT是否建立并且循环依赖关系在HTML中。

但是代码运行良好,真正的问题是这是否被认为是不良的实现模式?我不确定如何解决该问题。

javascript angular-cli angular angular5

5
推荐指数
1
解决办法
941
查看次数