如何从GunDb节点获取密钥

时间:2017-01-15 12:32:12

标签: javascript gun gundb

我开始使用GunDB,我真的非常喜欢它。我很容易创建复杂的关系,而没有与关系数据库或文档数据库相关的许多问题。

不幸的是,我遇到了一个看似简单的问题。

我已成功创建节点,但后来想要获取密钥,以便我可以将它们嵌入到页面中。例如,在一个页面上,我正在为用户添加表单。然后,在另一个页面上,我想获取用户列表并创建一个选择输入,将其名称列为文本,将键列为值。

例如,在第一页我有类似的东西 -



$('.edit').each(function() {
  var clickCounter = 0, // Sets click counter to 0 - No clicks done yet
      firstEdit = false; // Sets first edit to false
  $(this).on('click', function() {
      clickCounter++;
      if( clickCounter == 2 || firstEdit == true ) {
        $(this).toggle();
        $(this).next('.ok').toggle();
        clickCounter = 0; // Reset counter
        firstEdit = true;
      }
  });
});
$('.ok').on('click', function() {
    $(this).toggle();
  $(this).prev('.edit').toggle();
});




另一页,我有类似的东西 -



var user1 = gun.get('user/1').put({name: user1});
var user1 = gun.get('user/2').put({name: user2});
var users = gun.get('users');
users.set(user1);
users.set(user2);




稍后,我想在 -

之类的内容中使用选项值



var users = gun.get('users');

users.map().val(function(user) {
  var userOption = document.createElement("option");
  userOption.text = user.name;
  userOption.value = user.key; // for example, though this does not work
  userSelect.appendChild(userOption);
  
});




不幸的是,我无法弄清楚如何获得密钥。它似乎在节点对象中保存为"#",但我无法确定如何访问此值。

1 个答案:

答案 0 :(得分:3)

好问题!大多数回调的第二个参数都包含您要获取的数据的字段或键。从你的例子:

ema_dict = dict((key, dict((period, ema(stock_data[key], period)) for period in ema_periods)) for key in stock_data.keys())

现在,您可以users.map().val(function(user, ID) { var userOption = document.createElement("option"); userOption.text = user.name; userOption.value = ID; // for example, this now should work userSelect.appendChild(userOption); }); 获取相同的用户参考/链上下文!

我很高兴听到你喜欢用枪:)我很高兴看到你的项目演示!心灵分享?