簡體   English   中英

為什么我遇到“未定義”錯誤,但代碼在我的Meteor模板中正常工作?

[英]Why am I getting an 'undefined' error but the code is working in my Meteor template?

我做了這個UI.registerHelper:

UI.registerHelper('addressCityName', function(id) {
    "use strict";
        return Cities.findOne({_id: id }).name
}) 

這使我可以訪問“地址”集合中鏈接的city ID的name屬性。

它可以在瀏覽器中工作,但是在控制台中我收到一條錯誤消息: Exception in template helper: TypeError: Cannot read property 'name' of undefined

如果我從UI.registerHelper返回值中刪除了name屬性,則錯誤消失了,但瀏覽器不再顯示城市名稱。

這是怎么回事,我該如何解決?

在此處輸入圖片說明

當您嘗試使用Cities.findOne({_id: id }).name 但是您的訂閱尚未在客戶端准備好。 因此Cities.findOne({_id: id })是不確定的。

因此,如果您嘗試獲取Cities.findOne({_id: id }).name那么如果您將其可視化,輸出將類似於undefined.name 因此,這就是您收到錯誤的原因。

要解決該問題,您可以添加一個if條件,它將解決該問題。

UI.registerHelper('addressCityName', function(id) {
    "use strict";
        if(Cities.findOne({_id: id })) {
            return Cities.findOne({_id: id }).name
        }
}) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM