角度2-Can';t将值传递给model-Javascript、Typescript
我有这样一个KnowledgeElement模型:角度2-Can';t将值传递给model-Javascript、Typescript,javascript,angular,typescript,Javascript,Angular,Typescript,我有这样一个KnowledgeElement模型: export interface KnowledgeElement { public knowledgE_USER_ID: number; public knowledgE_NAME: string; public knowledgE_DESCRIPTION: string; public knowledgE_USER_SCORE: number; } @Component({ selector: 'survey',
export interface KnowledgeElement {
public knowledgE_USER_ID: number;
public knowledgE_NAME: string;
public knowledgE_DESCRIPTION: string;
public knowledgE_USER_SCORE: number;
}
@Component({
selector: 'survey',
moduleId: module.id,
styleUrls: ['survey.component.css'],
templateUrl: 'survey.component.html',
providers: [KnowledgeElementDataService]
})
export class SurveyComponent implements OnInit {
public knowledgeElement: KnowledgeElement = {};
constructor(private _knowledgeList: KnowledgeElementDataService){
}
submitSurvey(): void {
this.knowledgeElement.knowledgE_USER_ID = 1;
this.knowledgeElement.knowledgE_NAME = 'Empty';
this.knowledgeElement.knowledgE_DESCRIPTION = 'Empty';
this.knowledgeElement.knowledgE_USER_SCORE = 1;
this._knowledgeList.updateKnowledge(knowledgeElement);
}
}
还有这样一个组件:
export interface KnowledgeElement {
public knowledgE_USER_ID: number;
public knowledgE_NAME: string;
public knowledgE_DESCRIPTION: string;
public knowledgE_USER_SCORE: number;
}
@Component({
selector: 'survey',
moduleId: module.id,
styleUrls: ['survey.component.css'],
templateUrl: 'survey.component.html',
providers: [KnowledgeElementDataService]
})
export class SurveyComponent implements OnInit {
public knowledgeElement: KnowledgeElement = {};
constructor(private _knowledgeList: KnowledgeElementDataService){
}
submitSurvey(): void {
this.knowledgeElement.knowledgE_USER_ID = 1;
this.knowledgeElement.knowledgE_NAME = 'Empty';
this.knowledgeElement.knowledgE_DESCRIPTION = 'Empty';
this.knowledgeElement.knowledgE_USER_SCORE = 1;
this._knowledgeList.updateKnowledge(knowledgeElement);
}
}
当我尝试将属性分配给变量时,它会声明:
“原因:无法设置未定义的属性'knowledgE\u USER\u ID'”
如何为该变量分配属性,以便将其与方法一起传递给服务?请尝试
export class SurveyComponent implements OnInit {
knowledgeElement: KnowledgeElement;
submitSurvey(): void {
this.knowledgeElement = {knowledgE_USER_ID: 1,
knowledgE_NAME: "string",
knowledgE_DESCRIPTION: "string",
knowledgE_USER_SCORE: 2};
}
...
并删除界面中的公共修饰符
检查是否为空。这样地。印后
<div *ngIf="knowledgeElement">{{knowledgeElement.knowledgE_USER_ID}}</div>
{{knowledgeElement.knowledgE\u USER\u ID}
请您试一试
export class SurveyComponent implements OnInit {
knowledgeElement: KnowledgeElement;
submitSurvey(): void {
this.knowledgeElement = {knowledgE_USER_ID: 1,
knowledgE_NAME: "string",
knowledgE_DESCRIPTION: "string",
knowledgE_USER_SCORE: 2};
}
...
并删除界面中的公共修饰符
检查是否为空。这样地。印后
<div *ngIf="knowledgeElement">{{knowledgeElement.knowledgE_USER_ID}}</div>
{{knowledgeElement.knowledgE\u USER\u ID}
当前您的实例成员是
public knowledgeElement: KnowledgeElement = {};
换成
public knowledgeElement = new KnowledgeElement();
并将接口更改为类
你的
导出接口知识元素{
this._knowledgeList.updateKnowledge(knowledgeElement);
换成
导出类KnowledgeElement{当前您的实例成员是
public knowledgeElement: KnowledgeElement = {};
this._knowledgeList.updateKnowledge(knowledgeElement);
换成
public knowledgeElement = new KnowledgeElement();
并将接口更改为类
你的
导出接口知识元素{
this._knowledgeList.updateKnowledge(knowledgeElement);
换成
导出类知识元素{
this._knowledgeList.updateKnowledge(knowledgeElement);
应该是
this._knowledgeList.updateKnowledge(this.knowledgeElement);
您有一个“输入错误”,您应该传递this.knowledgeElement
而不是knowledgeElement
像局部变量一样:-)
应该是
this._knowledgeList.updateKnowledge(this.knowledgeElement);
你有一个“输入错误”,你应该传递
这个。knowledgeElement
不是knowledgeElement
像一个局部变量:-)是来自submitSurvey()的错误
method?您在提交表单或其他东西后调用它吗?@echonax是的,绑定到它的a submit按钮。您还可以将html添加到您的问题中吗?@echonax没有理由发布它,html只包含按钮,按钮工作得非常好。您可能弄乱了指令,但无论如何。console.log(这是什么)
在submitSurvey()中为您提供了信息。
错误是否来自submitSurvey()
method?您在提交表单或其他东西后调用它吗?@echonax是的,绑定到它的a submit按钮。您还可以将html添加到您的问题中吗?@echonax没有理由发布它,html只包含按钮,按钮工作得非常好。您可能弄乱了指令,但无论如何。console.log(这是什么)
在submitSurvey()中为您提供
?@PiotrJerzyMamenas更新我的答案。我尝试了你的代码。效果很好。@Piotrjerzymanas更新了我的答案。我尝试了你的代码。效果很好。KnowledgeElement
是一个接口而不是一个类。即使它是一个类,它会有什么区别?实际上它会因为取消定义而停止这个问题。我的项目中也有这个问题。所以您认为是一个空的对象({}
)等于未定义的?我对TypeScript也是新手,但由于它本身就是Javascript,所以不应该是这种情况。但当我用new初始化变量时,我就去掉了它。@Piotrzymamenas在html模板中使用之前,您需要先初始化它。我对类类型也有同样的问题,并通过使用new opera初始化它来解决torKnowledgeElement
是一个接口,而不是一个类。即使它是一个类,它会有什么区别?实际上它会因为未定义而停止这个问题。我的项目中也有这个问题。所以你认为一个空的对象
({}
)等于未定义的?我对TypeScript也是新手,但由于它本身就是Javascript,所以不应该是这种情况。但当我用new初始化变量时,我就去掉了它。@Piotrzymamenas在html模板中使用之前,您需要先初始化它。我对类类型也有同样的问题,并通过使用new opera初始化它来解决torThanks,似乎是非常愚蠢的事情。标记为答案。谢谢,似乎是非常愚蠢的事情。标记为答案。