Как получить ключ от узла GunDb
Я начал использовать GunDB, и я действительно наслаждаюсь этим. Я легко создаю сложные отношения без многих проблем, связанных с реляционными или документными базами данных.
К сожалению, у меня проблемы с, казалось бы, простой проблемой.
Я успешно создал узлы, но позже хочу получить ключи, чтобы я мог вставить их на страницу. Например, на одной странице я добавляю пользователей с помощью формы. Затем, на другой странице, я хочу получить список пользователей и создать выборочный ввод, который перечисляет их имена в виде текста и ключи в качестве значений.
Например, на первой странице у меня есть что-то вроде -
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);
});
Позже я хочу использовать значения параметров в чем-то вроде -
var user = gun.get(selectedUserOption.value);
К сожалению, я не могу понять, как получить ключ. Кажется, он сохраняется в объекте узла как "#", но я не могу определить, как получить доступ к этому значению.
1 ответ
Отличный вопрос! Второй параметр в большинстве обратных вызовов содержит поле или ключ данных, которые вы пытаетесь получить. Из вашего примера:
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);
});
Теперь вы можете сделать users.path(selectedUserOption.value)
чтобы получить тот же контекст ссылки / пользователя!
Я рад слышать, что вам нравится пользоваться пистолетом:) Я хотел бы увидеть демо вашего проекта! Разум делиться?