Angular 如何在typescript组件中运行JavaScript代码

Angular 如何在typescript组件中运行JavaScript代码,angular,typescript,Angular,Typescript,我是angular的新手,在angular 5(typescript)项目中工作,我需要一个JSON验证器函数,我从internet获得了一个函数,但它是纯JavaScript的 我想在我的组件中使用这个函数,它实际上会检查给定的JSON格式是否正确 <textarea ng-change="updateJsonObject()" ng-model="script" rows="10" class="form-control" style="width: 100%" ng-style=

我是angular的新手,在angular 5(typescript)项目中工作,我需要一个JSON验证器函数,我从internet获得了一个函数,但它是纯JavaScript的

我想在我的组件中使用这个函数,它实际上会检查给定的JSON格式是否正确

<textarea ng-change="updateJsonObject()" ng-model="script" rows="10" 
 class="form-control" style="width: 100%" ng-style="formatting"> 
在my component.ts中添加此代码的方法是什么,

您可以按照url

ngModelChange您需要使用ngModelChange立即反映更改

<textarea (change)="updateJsonObject()" (ngModelChange)="updateJsonObject()" [(ngModel)]="script" rows="10" 
 class="form-control" style="width: 100%" [ngStyle]="formatting"></textarea>    
你可以按照url

ngModelChange您需要使用ngModelChange立即反映更改

<textarea (change)="updateJsonObject()" (ngModelChange)="updateJsonObject()" [(ngModel)]="script" rows="10" 
 class="form-control" style="width: 100%" [ngStyle]="formatting"></textarea>    

这应该是一项相当简单的任务,它将AngularJs代码转换为AngularJs代码。这应该是一项相当简单的任务,它将AngularJs代码转换为AngularJs代码。Cf.它工作正常,但有一个小问题,当我失去焦点时,我的意思是当字段未被触及时,如果有任何错误就会发生。我们正在ngOnInit内部处理这种情况。或者,如果您希望任何api调用都能解决它,那么最好在resposne块中调用updateJsonObject,因为它已经存在了。ngOnInit(){this.updateJsonObject();}是的,这就是我们起诉ngmodelchangeok的原因。我知道了,只需要修改(ngModelChange)=“updateJsonObject($event)”,不需要(change)event它工作正常,但有一个小问题,当我失去焦点时,我的意思是,当这个字段没有被触及时,如果有任何错误就会发生。我们在ngOnInit内部处理的情况。或者,如果您希望任何api调用都能解决它,那么最好在resposne块中调用updateJsonObject,因为它已经存在了。ngOnInit(){this.updateJsonObject();}是的,这就是我们起诉ngmodelchangeok的原因。我知道了,只需要修改(ngModelChange)=“updateJsonObject($event)”而不需要(change)event
  message = {
    BasketCost: '5.00',
    Fruit: ['Apple', 'Orange', { Name: 'Pear', Expires: '15/05/17' }],
  };

  isValid = true;

  // script = '{' + JSON.stringify(this.message) + ')'; // testing
  script = JSON.stringify(this.message) ;


  formatting = { color: 'green', 'background-color': '#d0e9c6' };


  ngOnInit() {
    this.updateJsonObject();
  }

  updateJsonObject() {
    try {
      JSON.parse(this.script);
      this.formatting = {color: 'green', 'background-color':'#d0e9c6'};
      console.log('invalid');
    } catch (e) {
      console.log('invalid');
      this.isValid = false;
      this.formatting = {color: 'red', 'background-color':'#f2dede'};
    }
  }