首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角4依赖注入

角4依赖注入
EN

Stack Overflow用户
提问于 2018-03-15 14:40:41
回答 1查看 139关注 0票数 0

我想重用一个角函数,它可以改变多个组件的属性(相同类型)。第一个解决方案是将此函数作为全局变量导入。

Utilis.ts

代码语言:javascript
复制
 export function alterProperty(property: CustomProperty) {
    .... // some change on property
 }

component.ts

代码语言:javascript
复制
import {alterProperty} from './Utilis.ts'
class MyComponent {
    property1: CustomProperty;
    constructor(){}
    handleClick() {
      alterProperty(this.property1);
    }
}

在我读了一些关于角度依赖注入的文章之后,我意识到这可能不是一个好的解决方案,所以我想出了另一个解决方案。

myService.ts

代码语言:javascript
复制
@Injectable()
export class MyService1 {
    constructor(){}
    alterProperty(property: CustomProperty)
}  

component.ts

代码语言:javascript
复制
import MyService1 from 'myService.ts'
@Component{
    providers: [MyService1]
}
export class MyComponent {
   property1: CustomProperty;
   constructor(private service1:MyService1){}
   handleClick(){
      this.service1.alterProperty(this.property1);
   }
}

以下是我的问题:

  1. 它是组织可重用函数的正确方法吗?
  2. 这是否是我在其他地方更改property1 of MyComponen的正确方法(在本例中,通过从myService依赖项调用alterProperty函数来更改property1) (它让我感觉失去了对property1的控制)。有什么更好的方法来解决这个问题吗?

感谢你的建议。

EN

回答 1

Stack Overflow用户

发布于 2018-03-15 14:47:49

答1. )您可以在src下的共享目录中拥有一个服务或实用程序。此服务中的函数将负责更改属性。

回答2. )AFAIK,共享服务是一种有效的解决方案。只要需要,就会将其注入组件。也许有更好的解决办法,但这个也不是不正确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49302361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档