gpt4 book ai didi

handlebars.js - 初学者 meteor : template and findOne

转载 作者:行者123 更新时间:2023-12-04 21:59:43 24 4
gpt4 key购买 nike

我想尝试 Meteor,所以我说用 coffeescript 开发一个小型的多房间聊天应用程序。
我在使用 Handlebars 将 findOne 的结果传递到 html 页面时遇到问题。

if Meteor.is_client
room=Rooms.findOne({id:1})
Template.room({room_name:room.name})

在 html 页面中
 <head>
<title>Chat!</title>
</head>
<body>
{{> room}}
</body>

<template name="room">
Welcome to {{room_name}}
</template>

现在,鉴于 id = 1 的房间文档的名称 = 'Room1',我希望页面呈现“欢迎来到 Room1”,但出现白页并且控制台显示 2 个错误:
Uncaught TypeError: Cannot read property 'name' of undefined
Uncaught TypeError: Cannot read property 'room_name' of undefined

即使该文档确实存在,房间显然也是未定义的。

最佳答案

在客户端数据库缓存有时间同步到服务器之前,它有一瞬间未定义。该模板应该在客户端同步后再次呈现,但由于它第一次抛出了不会发生的错误(我最近被类似的问题弄糊涂了)。

试试这个(使用短路 && 来测试房间是否存在):

if Meteor.is_client
Template.room.room_name = ->
room = Rooms.findOne({id:1})
room && room.name

注意:我移动了 findOne调用函数以确保它在更新发生时被调用,但它可能在你拥有它的地方也很好

关于handlebars.js - 初学者 meteor : template and findOne,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10400480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com