微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

警告:无法解析UsersPermissionsService的所有参数这将成为Angular v5.x中的错误

当我运行build -prod时,我收到以下警告.
Warning: Can't resolve all parameters for UsersPermissionsService in C:/SourceControl/Test.Client/src/app/shared/users/users-permissions.service.ts: (?,?,?). This will become an error in Angular v5.x
Warning: Can't resolve all parameters for UsersPermissionsService in C:/SourceControl/Test.Client/src/app/shared/users/users-permissions.service.ts: (?,?). This will become an error in Angular v5.x

我的代码如下:

import { Injectable } from '@angular/core';

@Injectable()
export class UsersPermissionsService {

    public USERS_CREATE_PERMISSION: string = '';
    public USERS_UPDATE_PERMISSION: string = '';
    public USERS_DELETE_PERMISSION: string = '';

    constructor(public UsersCreatePermission: string,public UsersUpdatePermission: string,public UsersDeletePermission: string) {
        this.USERS_CREATE_PERMISSION = UsersCreatePermission;
        this.USERS_UPDATE_PERMISSION = UsersUpdatePermission;
        this.USERS_DELETE_PERMISSION = UsersDeletePermission;
    }
}


@Injectable()
export class UserModulePermissionsService extends UserPermissionsService {
    constructor() {
        super("ClientsCreate","ClientsEdit","ClientsDelete");
    }
}

@Component({
    templateUrl: './users-permissions.component.html',providers: [UsersPermissionsService]
})
export class UsersPermissionsComponent {
    constructor(public usersPermissionsService: UsersPermissionsService) {

    }
}

在我的懒惰加载模块中,我有

providers: [
        { provide: UsersPermissionsService,useClass: UserModulePermissionsService }
    ]

现在,角度5已经出来,我将需要更新,并且消息说这个警告将成为错误.

不明白这里真正的问题是什么.

从基类中删除@Injectable装饰器.您应该只在Angular应该直接实例化的类中包含该装饰器(或任何装饰器)(并且这样做时也使用注入器解析它们的构造函数参数).

因为很明显,在你的情况下,基类不是直接用angular实例化的(它具有注入器不知道的构造函数参数),你应该从中删除装饰器.

原文地址:https://www.jb51.cc/angularjs/141041.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐