Angular 2-在类中运行服务
我是新来的。我在一个电子商务网站上工作,我为用户、物品、出价等设计了一些基本类。。。我的用户类有许多参数,其中一些是:Angular 2-在类中运行服务,angular,service,Angular,Service,我是新来的。我在一个电子商务网站上工作,我为用户、物品、出价等设计了一些基本类。。。我的用户类有许多参数,其中一些是: export class User { id: number; name: string; email: string; ... notifications: Notification[]; } 通知类只有两个参数,如下所示: export class Notificati
export class User {
id: number;
name: string;
email: string;
...
notifications: Notification[];
}
通知类只有两个参数,如下所示:
export class Notification {
notification: string;
read: boolean;
}
我有一个用户服务和一个通知服务
情况是这样的:当用户读取通知时,我必须向服务器请求更改数据库中通知的“读取标志”的值。为此,在我的组件中,我可以执行以下操作:
this.notificationService.changeToRead(user.notifications[x]).subscribe(...);
在前一行中,我设想notificationService是notificationService的一个实例,它有一个名为changeToRead(notification:notification)的方法来执行请求
我的问题是这似乎是程序性的,我想要一个更面向对象的解决方案,如:
user.notifications[x].changeToRead();
要做到这一点,我必须在类通知中使用changeToRead()方法,但似乎我无法将服务注入到类中。。。但是,即使我可以,我也不想要像通知一样多的服务实例
我不确定我是否清楚,因为我的英语很差,但我需要找到一个解决方案,使我的请求更面向对象,如
任何想法?
< P>你可能想考虑使用当前的角度模式来建立你的角度应用程序,而不是引入在角度上不常用的OOP模式。 话虽如此,我还是能够使用如下方式将服务“注入”到我的类中: 在课堂上: constructor(private productService: ProductService) {
}
ngOnInit(): void {
let product = new IProduct(this.productService);
}
在使用该类的组件代码中:
constructor(private productService: ProductService) {
}
ngOnInit(): void {
let product = new IProduct(this.productService);
}
使用此
类的任何原因。它必须用@组件装饰
谢谢您的回答。是的,正如你所说,我尝试过“注入”服务,但我似乎没有“清洁”。你说“当前角度模式”是什么意思?在组件中注入服务并以过程方式使用服务的正确编程方法是什么?我的意思是,我一直在寻找使用OOP的方法,因为我认为它是最干净的,但如果不是,我将一如既往……是的,在Angular中,将服务注入组件是“正确”的编程方式。不确定这是如何“程序化”的。该服务只是一个单例对象,您可以使用OOP技术对其调用方法。啊,太棒了!好吧,我将一如既往地继续下去!非常感谢@DeborahK