在Angular 12中,可以使用@Injectable装饰器和类来创建可注入的服务,以取代Angular.js中的Factory。以下是一个示例:
在Angular.js中的Factory示例:
app.factory('myFactory', function() { var service = { name: 'My Factory', doSomething: function() { console.log('Doing something in my factory'); } }; return service; });
在Angular 12中的等价代码示例:
import { Injectable } from '@angular/core';
@Injectable({ providedIn: 'root' }) export class MyService { name = 'My Service'; doSomething() { console.log('Doing something in my service'); } }
在使用时,可以在组件的构造函数中将该服务注入并使用它:
import { Component } from '@angular/core'; import { MyService } from './my-service';
@Component({
selector: 'my-component',
template: {{ myService.name }}
})
export class MyComponent {
constructor(public myService: MyService) {}
}