Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
角度2-Can';t将值传递给model-Javascript、Typescript_Javascript_Angular_Typescript - Fatal编程技术网

角度2-Can';t将值传递给model-Javascript、Typescript

角度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',

我有这样一个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);
  }
}
还有这样一个组件:

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初始化它来解决tor
KnowledgeElement
是一个接口,而不是一个类。即使它是一个类,它会有什么区别?实际上它会因为未定义而停止这个问题。我的项目中也有这个问题。所以你认为一个空的
对象
{}
)等于
未定义的
?我对TypeScript也是新手,但由于它本身就是Javascript,所以不应该是这种情况。但当我用new初始化变量时,我就去掉了它。@Piotrzymamenas在html模板中使用之前,您需要先初始化它。我对类类型也有同样的问题,并通过使用new opera初始化它来解决torThanks,似乎是非常愚蠢的事情。标记为答案。谢谢,似乎是非常愚蠢的事情。标记为答案。