Как разделить отклик Json и получить определенную часть, используя угловую - PullRequest
0 голосов
/ 22 сентября 2018

Я разрабатываю приложение углового блокчейна, используя инструмент для составления гипертележей. Когда я запрашиваю у историка, я получаю ответ, как показано ниже.

{

 transactionType:"org.hyperledger.composer.system.AddParticipant"

}

Я отображаю тип транзакции, используя следующий фрагмент кода.

 <div class="col-md-6">
    {{participant.transactionType}}
 </div>

Отображаемая часть выглядит следующим образом.

org.hyperledger.composer.system.AddParticipant

, но я хочу отображать только часть AddParticipant в ответе без org.hyperledger.composer.system.часть.Как я могу это исправить?

Ответы [ 4 ]

0 голосов
/ 24 сентября 2018

Когда вы видите ваши исторические данные, они будут выглядеть примерно так:

'$namespace': 'org.hyperledger.composer.system',
'$type': 'HistorianRecord',
'$identifier': '6e43b959c39bdd0c15fe45587a8dc866f1fa854d9fea8498536e84b45e281b31',
'$validator': ResourceValidator { options: {} },
transactionId: '6e43b959c39bdd0c15fe45587a8dc866f1fa854d9fea8498536e84b45e281b31',
transactionType: 'org.hyperledger.composer.system.IssueIdentity',
transactionInvoked:
 Relationship {
   '$modelManager': [Object],
   '$classDeclaration': [Object],
   '$namespace': 'org.hyperledger.composer.system',
   '$type': 'IssueIdentity',
   '$identifier': '6e43b959c39bdd0c15fe45587a8dc866f1fa854d9fea8498536e84b45e281b31',
   '$class': 'Relationship' },

Таким образом, вместо взятия TransactionsType вы можете использовать объект actionInvoked .И тогда вы можете получить любую информацию, которую хотите от этого объекта.Наконец, ваш код должен выглядеть следующим образом:

 <div class="col-md-6">
     {{participant.transactionInvoked.$type}}
 </div>

В моем случае он выдаст мне тип транзакции как просто «IssueIdentity».

0 голосов
/ 22 сентября 2018

вы можете использовать "substr", чтобы выбрать слово из строки, но вам нужно сначала поместить ваше слово в строке, так:

const str = 'org.hyperledger.composer.system.AddParticipant'
let getPosition = str.indexOf('AddParticipant'); // get the position of AddParticipant
let getWord = str.substr(getPosition,13);

длина AddParticipant составляет 13
, также вы можете изменитькод выше для лучшего и более чистого и универсального кода

const splitWord = (index)=>{
  const str = 'org.hyperledger.composer.system.AddParticipant'
  let strArray = str.split('.')
  let getPosition = str.indexOf('AddParticipant'); // get the position of AddParticipant
  let getWord = str.substr(getPosition,strArray[index].lenght); //you just need to change the number 

  return getWord;
}
console.log(splitWord(4));
0 голосов
/ 22 сентября 2018

Вы также можете получить последнее «слово» с регулярным выражением:

<div class="col-md-6">
  {{participant.transactionType.match(/\w+$/i)}}
</div>
0 голосов
/ 22 сентября 2018

Для этого просто сделайте небольшие манипуляции со строками.Используйте метод JS .split (), который разбивает строку по символу / строке аргумента.

let arr = this.participant.transactionType.split(".");

, тогда arr[arr.length-1] - это требуемая часть строки, которую вы можете связать для просмотра.Как использовать ниже {{txTyepe}} в шаблоне привязки

this.txType = arr[arr.length-1];
...