簡體   English   中英

如何將JSON對象參數分配給打字稿中的某些值?

[英]How to assign JSON object parameters to some values in typescript?

我目前正在使用angular 2.0。 我有一個像這樣的方法返回的json對象。

this.propertiesService.addSeriesToChart(this.testId).subscribe(result => {
        this.result = result;
        });

addSeriesToChart()正在使用中,它返回json對象。

在返回的結果中,我必須將一些空值分配給一些默認值,我正在嘗試像

if (this.result != undefined && this.result != null) {
  this.result.json().channel.mark = "ABC"

但是json對象內部的mark參數似乎未設置為“ ABC”,它始終保持為null。 我在這里做錯什么了嗎?

假設您要分配來自json的data在組件類中有一個可變data 您可以使用output屬性來發出您在訂閱時收到的數據。

你可以這樣做:

import { Component, Output, EventEmitter } from '@angular/core';

@Component({
  selector: 'user',
  template: '<div>Hi</div>'
})

export class AppComponent{
data:Data;
@Output() dataOutput:EventEmitter<Data> =
new EventEmitter<Data>()

this.propertiesService.addSeriesToChart(this.testId).subscribe(result => {
            this.data = result.json();
            this.dataOutput.emit(this.data);
            });
}

這里的Data將是您的模型,其中包含可以將json映射到的變量:

export class Data{
   id:number;
   name:string;
}

現在,為了在應用程序的其他位置使用上述AppComponent ,可以綁定事件:

<user (dataOutput)="receiveData($event)"></user>



 export class PageComponent {
     datareceived:Data;
      constructor(){}
    receiveData(data){
         this.datareceived=data;
    }

     getUIData(value: any) {
            for (var name in value.selected) { 
               if (this.datareceived!= undefined && this.datareceived!= null) { 
                  if (name == 'mark') 
                     //do whatever you feel like 
                 } 
              } 
          }
    }

我認為這將解決很多情況。 我知道這並不是您的json所提供的解決方案,而是一種簡化的解決方案。 試試吧。

首先,您可以在發送響應時在服務時使用result.JSON()將對象轉換為JSON,然后當您收集該JSON對象時,您必須將其轉換為this.result = JSON.stringify(result)它適用於mi

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM