[英]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.