我正在使用超级账本作曲家工具开发角度区块链应用程序。当我询问历史学家时,我得到了如下的回复。
{
transactionType:"org.hyperledger.composer.system.AddParticipant"
}
我使用以下代码片段显示事务类型。
<div class="col-md-6">
{{participant.transactionType}}
</div>
显示的部分是这样的。
org.hyperledger.composer.system.AddParticipant
但我只想在响应中显示"AddParticipant"部分,而不显示"org.hyperledger.composer.system"部分。我该如何解决它?
为此,只需进行少量的字符串操作。利用 JS .split(( 方法,该方法按参数字符/字符串拆分字符串。
let arr = this.participant.transactionType.split(".");
然后arr[arr.length-1]
是可以绑定到视图的必需字符串部分。就像在模板绑定中使用下面{{txTyepe}}
this.txType = arr[arr.length-1];
您可以使用"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));
你也可以用正则表达式获取最后一个"单词":
<div class="col-md-6">
{{participant.transactionType.match(/w+$/i)}}
</div>
当你看到你的历史学家数据时,它看起来像这样
'$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' },
因此,您可以使用事务调用对象,而不是采用事务类型。然后,您可以从该对象中获取所需的任何信息。 最后你的代码应该是这样的
<div class="col-md-6">
{{participant.transactionInvoked.$type}}
</div>
就我而言,它将给我的交易类型为"IssueIdentity"。