角在对象中使用服务或在构造函数中使用服务创建对象

时间:2019-01-18 11:13:31

标签: angular

我有一个表单设置:

export const fields = [
  {
     key: 'key',
     options: myService.get() // how can I call service method here?
  }
]

我想知道这样的事情:

class MyFields {
  fields = [
    {
       key: 'key',
       options: this.myService.get()
    }
  ]
  constructor(private myService: MyService) {}
}

@Component...
export class MyComponent {
    constructor() {
      const fields = new MyFields().fields;
    }
}

但是我必须将服务传递给:

new MyFields().fields;

构造函数。

您知道如何执行此操作吗?

2 个答案:

答案 0 :(得分:0)

由于let documentDirectoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! 已在其构造函数中接受服务,所以现在您只需要调用

MyFields

就是这样。

答案 1 :(得分:0)

您还可以从ngOnInit()调用服务功能

class MyFields {
fields = [
  {
     key: 'key',
     options:''
  }
]
constructor(private myService: MyService) {
  const fields = new MyFields(this.myService).fields;
}    

// Another way 
ngOnInit(){
    this.fields[0].options = this.myService.get();
}