如何在打字稿组件中运行JavaScript代码

时间:2018-12-31 12:37:10

标签: angular typescript

我是angular的新手,并且在angular 5(打字稿)项目中工作,我需要一个JSON验证器函数,我从互联网上获得了一个函数,但它完全是JavaScript。

我希望在我的组件中使用该函数,它实际上会检查给定的JSON格式是否正确。

 new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    button.setVisibility(View.VISIBLE);
                }
            } 
        }
    }, 3000);

<textarea ng-change="updateJsonObject()" ng-model="script" rows="10" 
 class="form-control" style="width: 100%" ng-style="formatting"> 

将这种代码添加到我的component.ts中的方式是什么

1 个答案:

答案 0 :(得分:2)

您可以按照网址https://stackblitz.com/edit/angular-8jjx4b

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

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

//在课堂上

  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'};
    }
  }