无法解析 xxx.service 的所有参数
Can't resolve all parameters for xxx.service
我不是从 angular 库构建服务,出现错误。这是我的代码和错误。有什么帮助吗?我正在使用 angular 8
从“@angular/core”导入{可注射};
// @dynamic
@Injectable({
providedIn: 'root'
})
export class SharedSortByColumnService {
constructor(
private data: any,
private searchCriteria: any,
private childName: string,
private secondChildName: string,
private thirdChildname: string) { }
columnSorter() {
}
}
错误:
Can't resolve all parameters for SharedSortByColumnService in C:/722333/xxx/services/shared-sort-by-column.service.ts: (?, ?, ?, ?, ?).
更新
我试过这个:
constructor(
public data?: any,
public searchCriteria?: any,
public childName?: string,
public secondChildName?: string,
public thirdChildname?: string) { }
还是不行。
您无法使用 DI 神奇地解析一大堆字符串和 "any" 数据类型。
Angular 擅长解析已知可注入的 类 - 但这里如何区分不同的字符串参数?
这些值从何而来?如果它们是在应用程序的生命周期内保持不变的配置值,那么您可以在构造函数中设置它们(而不是通过尝试 DI):
@Injectable({
providedIn: 'root'
})
export class SharedSortByColumnService {
constructor() {
// TODO: set config values here
// this.data = ??
}
private data: any;
private searchCriteria: any;
private childName: string;
private secondChildName: string;
private thirdChildname: string;
columnSorter() {
}
}
编辑:
我认为你是在暗示这些实际上是函数参数。
在这种情况下,编写一个接受这些参数的函数是微不足道的:
@Injectable({
providedIn: 'root'
})
export class SharedSortByColumnService {
constructor() {
// empty constructor, can be deleted
}
columnSorter(data: any, searchCriteria: any, childName: string,
secondChildName: string, thirdChildname: string): data {
// TODO: process data.
// No need to maintain internal state in the service.
// All parameters relate to this single transaction / operation
return data;
}
}
服务应仅在应用程序的生命周期内维护内部状态是有意义的。
例如,如果您想对同一组件中的两个数据集进行排序,那么您调用该服务两次并且是 "transactional" 操作 - 函数调用只是数据 + 标准的情况,并且数据输出。
我不是从 angular 库构建服务,出现错误。这是我的代码和错误。有什么帮助吗?我正在使用 angular 8
从“@angular/core”导入{可注射};
// @dynamic
@Injectable({
providedIn: 'root'
})
export class SharedSortByColumnService {
constructor(
private data: any,
private searchCriteria: any,
private childName: string,
private secondChildName: string,
private thirdChildname: string) { }
columnSorter() {
}
}
错误:
Can't resolve all parameters for SharedSortByColumnService in C:/722333/xxx/services/shared-sort-by-column.service.ts: (?, ?, ?, ?, ?).
更新
我试过这个:
constructor(
public data?: any,
public searchCriteria?: any,
public childName?: string,
public secondChildName?: string,
public thirdChildname?: string) { }
还是不行。
您无法使用 DI 神奇地解析一大堆字符串和 "any" 数据类型。
Angular 擅长解析已知可注入的 类 - 但这里如何区分不同的字符串参数?
这些值从何而来?如果它们是在应用程序的生命周期内保持不变的配置值,那么您可以在构造函数中设置它们(而不是通过尝试 DI):
@Injectable({
providedIn: 'root'
})
export class SharedSortByColumnService {
constructor() {
// TODO: set config values here
// this.data = ??
}
private data: any;
private searchCriteria: any;
private childName: string;
private secondChildName: string;
private thirdChildname: string;
columnSorter() {
}
}
编辑:
我认为你是在暗示这些实际上是函数参数。
在这种情况下,编写一个接受这些参数的函数是微不足道的:
@Injectable({
providedIn: 'root'
})
export class SharedSortByColumnService {
constructor() {
// empty constructor, can be deleted
}
columnSorter(data: any, searchCriteria: any, childName: string,
secondChildName: string, thirdChildname: string): data {
// TODO: process data.
// No need to maintain internal state in the service.
// All parameters relate to this single transaction / operation
return data;
}
}
服务应仅在应用程序的生命周期内维护内部状态是有意义的。
例如,如果您想对同一组件中的两个数据集进行排序,那么您调用该服务两次并且是 "transactional" 操作 - 函数调用只是数据 + 标准的情况,并且数据输出。