【问题标题】:How to make doc.id clickable item?如何使 doc.id 可点击项目?
【发布时间】:2020-03-01 06:22:36
【问题描述】:

如何将 doc.id 变成可点击项目? 现在我可以从我的数据库中获取数据,我可以列出所有 doc.id,但我想将它们制作成超链接,当按下它时,它会从数据库中获取数据并将其数据显示为画布上的绘图。有道理吗?

doc.id 是保存在我的 firestore 数据库中的唯一 ID。

const allDrawings = document.querySelector('#allDrawings');

function renderDrawings(doc){
    let li = document.createElement('li');
    let key = document.createElement('doc.id');

    li.setAttribute('data-id', doc.id);
    key.textContent = doc.id;

    li.appendChild(key);

    allDrawings.appendChild(li);

}

db.collection('joonistused').get().then((snapshot) => {
    snapshot.docs.forEach(doc => {
        renderDrawings(doc);
        console.log(doc.id);
    })
})

【问题讨论】:

    标签: javascript google-cloud-firestore processing


    【解决方案1】:

    我相信您正在寻找的是一种设计/逻辑,用于在浏览器的 firestore 集合中列出文档并使它们列出项目。然后,您希望单击一个项目并将该文档的内容显示给用户。这将需要您的编程逻辑。您将需要编写在单击链接时调用的浏览器/客户端 JavaScript (onclick)。到达 JavaScript 代码后,您将需要对 Firestore 数据库进行 Web 客户端调用以检索相应的文档。

    见:https://firebase.google.com/docs/reference/js/firebase.firestore.DocumentReference.html#get

    这看起来也很有用:

    Firebase Firestore Tutorial #3 - Getting Documents

    【讨论】:

    • 此评论扩展了 cmets 以获得另一个答案...我感觉到您正在将数据写入数据库。这是内部数据(不是 HTML)。然后我感觉到您想要一个链接,当单击该链接时,它会检索该数据并......从数据中......以某种方式呈现它。它是否正确?如果是这样,那么您可能实际上并不是指“URL 链接”,它通常是一个锚标记,单击该标记会导致浏览器加载不同的页面。我怀疑当您说链接时,您实际上是指可点击的项目(问题)。
    【解决方案2】:

    如果您只是想在 DOM 中创建锚点,请尝试以下操作:

    const anchor = document.createElement('a');
    anchor.href = `/some/path/to/${doc.id}`;
    anchor.innerText = `Document ID ${doc.id}`;
    
    // <a href="/some/path/to/123">Document ID 123</a>
    

    【讨论】:

    • URL 应该是什么样的?你能分享一个例子吗?
    • 我的意思是,我希望每个 doc.id 都是可点击的,比如超链接?
    • 我明白了。我只是想知道 URL 的格式是什么;像http://whatever.com/docs/id 或类似的东西。我的示例展示了如何创建可点击的链接,您只需使用 URL 的格式编辑 href 和带有 ID 的 innerText(如果您只想显示这些)。
    • 示例:puu.sh/EAPXM/f70a13062f.png 看看它是怎么变成蓝色的,我可以点击它吗?我希望所有这些都是这样,路径是他们的名字,基本上路径只是他们的 URL 链接,但我怎样才能将它自己路径到它呢?如果有道理?这就是令人困惑的地方
    • 是的,完全理解您想要一个可点击的链接。如果您查看我的示例,您会看到anchor.href =,这就是您定义 URL 的地方。我的示例显示了一个编造的路径/some/path/to/${doc.id},但您的可能是https://mywebsite.com/docs/${doc.id}。因此,您可以编辑该行以放置您的 URL 的结构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多