代码之家  ›  专栏  ›  技术社区  ›  Santiago de Diego

检索Hyperledger Composer中的资产数组

  •  1
  • Santiago de Diego  · 技术社区  · 8 年前

    我定义了这个模型:

    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
    }
    

    当我尝试获取asks字段时,我什么也得不到。以下是测试代码:

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

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

    1 回复  |  直到 8 年前
        1
  •  1
  •   TheOkayCoder    8 年前

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

    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 我在里面喂 投票 进入交易。查看我的链码日志,我可以看到我的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

    推荐文章