Javascript 角度2错误:(SystemJS)Can';t解析成员的所有参数:(?)(…;)
我经常缩小不断出现的错误范围(这样调试就更容易了…) 在尝试将数据模型添加到共享模块(在浏览器控制台中)时,我不断遇到此错误: 有问题的Javascript 角度2错误:(SystemJS)Can';t解析成员的所有参数:(?)(…;),javascript,angular,Javascript,Angular,我经常缩小不断出现的错误范围(这样调试就更容易了…) 在尝试将数据模型添加到共享模块(在浏览器控制台中)时,我不断遇到此错误: 有问题的成员类: import * as _ from 'lodash'; import { Injectable } from '@angular/core'; @Injectable() export class Member { private id: string; [key: string]: any; constructor(private
成员类
:
import * as _ from 'lodash';
import { Injectable } from '@angular/core';
@Injectable()
export class Member {
private id: string;
[key: string]: any;
constructor(private data?: any) {
if (data) {
this.id = data.id;
_.extend(this, data.attributes);
}
}
}
MySharedModule
(目前,成员类在其他任何地方都没有引用):
当我去掉类成员中的构造函数时,错误消失:
import * as _ from 'lodash';
import { Injectable } from '@angular/core';
@Injectable()
export class Member {
private id: string;
[key: string]: any;
}
正如您所看到的,我没有使用桶导入,因为导入的顺序可能会导致相同的错误
我有点被困在如何解决这个问题上。。。谢谢如果该类只是用作模型,那么不要将其添加到@NgModule.providers
中,也不要尝试注入它。只需将类导入到您需要的类文件中,并像使用任何其他普通类一样使用它
import { Member } from './member.model';
@Component({})
class MyComponent {
member = new Member();
}
另请参见:
如果该类只是用作模型,则不要将其添加到@NgModule.providers
中,也不要尝试注入它。只需将类导入到您需要的类文件中,并像使用任何其他普通类一样使用它
import { Member } from './member.model';
@Component({})
class MyComponent {
member = new Member();
}
另请参见:
带有@Injectable()
装饰器的类被Angular作为服务提供者实例化一次。Angular使用反射/类型暗示为实例提供其依赖项
Angular不知道给您的成员
类的构造函数提供什么,因为它的类型被定义为任何
类,带有@Injectable()
装饰器的类被Angular作为服务提供者实例化一次。Angular使用反射/类型暗示为实例提供其依赖项
Angular不知道给您的成员
类的构造函数提供什么,因为它的类型被定义为any
您到底想向成员
注入什么?Angular不知道你给了你什么,因为没有代币。你确定你真的想让模型成为提供者吗?重点是什么?也许看一看和/或@peeskillet抱歉,我没有收到你的评论。1) 我没有试图向成员
注入任何内容。成员应仅用作数据模型。我想将json属性传递到构造函数中。2) 我还可以如何在模型中使用该类?我需要提供它以获得一个新方法,不是吗?那么为什么需要将它添加为提供程序
?只需将文件导入到类中,然后new
。在前面的评论中看到我的第一个链接。如果我没有看到,请去掉@Injectable
decorator,将其从提供程序中删除,然后只导入类。我得到以下错误:没有成员的提供程序代码>您到底想向成员
注入什么?Angular不知道你给了你什么,因为没有代币。你确定你真的想让模型成为提供者吗?重点是什么?也许看一看和/或@peeskillet抱歉,我没有收到你的评论。1) 我没有试图向成员
注入任何内容。成员应仅用作数据模型。我想将json属性传递到构造函数中。2) 我还可以如何在模型中使用该类?我需要提供它以获得一个新方法,不是吗?那么为什么需要将它添加为提供程序
?只需将文件导入到类中,然后new
。在前面的评论中看到我的第一个链接。如果我没有看到,请去掉@Injectable
decorator,将其从提供程序中删除,然后只导入类。我得到以下错误:没有成员的提供程序代码>
import { Member } from './member.model';
@Component({})
class MyComponent {
member = new Member();
}