在 Hyperledger Composer 中检索资产数组

Retrieving array of assets in Hyperledger Composer

我定义了这个模型:

asset Ask identified by askId
{
    o String askId
    o String title
    o String[] options
    o Integer[] votes
}


asset Poll identified by pollId
{
    o String pollId
    --> Ask[] asks
}

当我尝试获取询问字段时,我什么也得不到。这是测试代码:

count.poll.asks.forEach(function(ask)
{
       alert("Ask:" +ask);
});

一个 alert(count.poll) 检索 Relationship {id=org.acme.democracity.Poll#pollId:poll1111} 所以里面有一个有效的对象。

我不确定是否可以像我一样声明资产数组。

我试图重新创建模型并实现功能,这是我所拥有的:

asset Ask identified by askId
{
    o String askId
    o String title
    o String[] options
    o Integer[] votes
}


asset Poll identified by pollId
{  
    o String pollId
    --> Ask[] asks
}

transaction count {
    --> Poll pollId
}

我的交易处理器函数看起来像:

/**
 * count transaction
 * @param {org.sample.count} count
 * @transaction
 */
function count(count) {
  count.pollId.asks.forEach(function(ask) {
    var serializer = getSerializer()
    var serializer = getSerializer();
    var jsonObj = serializer.toJSON(ask);
    console.log("Ask: ", ask);
    console.log("Ask jsonObj: ", jsonObj);    
  });
}

使用它,我能够创建一个 Ask,然后创建一个 Poll,在其中我将 Poll 提供给交易。查看我的链代码日志,我可以看到我的 obj 已正确打印

Ask:  Resource {id=org.sample.count.Ask#striaweng}
Ask jsonObj:{$class:"org.sample.count.Ask",askId:"striaweng",title:"striawefawefng",options:["stawefring","stawefring","stawefring"],votes:[0,2,3,4,5]}

也许试试这个,看看是否有帮助。确保输入正确的 Asset 并引用正确的子属性。