流星 |辅助功能。如何在 HTML 上打印返回元素的属性值
Meteor | Helper function. How to print attribute values of returned element on HTML
我正在使用 Meteor JS UI 开发一个项目。有一个辅助方法,它接受一个输入参数和 return 一个对象。
辅助函数:
"getPhoneName": function (param) {
let myObj = PhoneRegister.findOne({"_id": param});
//This myObj contains name, _id, modelNumber
return myObj;
}
我如何在 HTML
上使用它
<span>{{getPhoneName 'id_1234'}}</span> //This line is obviously prints the [[Object]]
Here i am not getting solution how to print modelNumber. I have tried following :
1.{{getPhoneName 'id_1234'.modelNumber}}
2.{{getPhoneName 'id_1234'}}.modelNumber
有人可以帮忙吗?如果您需要更多信息,请告诉我。
如果您只想要一个 属性,您可以简单地 return myObj.property;
并像您已经对 {{getPhoneName 'id_1234'}}
所做的那样显示它。
但是如果你想访问多个属性,你可以 return 数组中的对象,然后像这样使用 each or each-in Blaze 的内置块:
帮手:
"getPhoneName": function (param) {
let myObj = PhoneRegister.findOne({"_id": param});
//This myObj contains name, _id, modelNumber
return [myObj]; // Returning an array in order to use each or each-in
}
HTML(每一个):
{{#each getPhoneName 'id_1234'}}
<span>{{this.property1}}</span>
<span>{{this.property2}}</span>
{{/each}
你也可以看看{{#let}},在某些情况下它也很有用。
你提到你有这个辅助功能:
getPhoneName (_id) {
const myObj = PhoneRegister.findOne({_id});
//This myObj contains name, _id, modelNumber
return myObj;
}
根据您的需要有 2 种方法
首先,如果您只想获得 "name",正如助手暗示的那样 getPhoneName
,您可以改为 return myObj.name;
(还应考虑错误处理以确保 myObj 存在)。
然后您就可以使用它了:
<p>The name of the phone is {{getPhoneName phoneId}}</p>
但是,如果您改为在模板中列出有关 phone 的各种信息,则可以不理会帮助程序,而是通过以下两种不同的方式之一调整您的模板:
1) 使用 #let
在模板中命名对象。
{{#let currentPhone=(getPhoneName phoneId)}}
<ul>
<li>ID: {{currentPhone._id}}</li>
<li>Name: {{currentPhone.name}}</li>
</ul>
{{/let}}
2) 使用 #with
将该对象用作您的数据上下文而不分配名称
{{#with getPhoneName phoneId}}
<ul>
<li>ID: {{_id}}</li>
<li>Name: {{name}}</li>
</ul>
{{/let}}
我正在使用 Meteor JS UI 开发一个项目。有一个辅助方法,它接受一个输入参数和 return 一个对象。
辅助函数:
"getPhoneName": function (param) {
let myObj = PhoneRegister.findOne({"_id": param});
//This myObj contains name, _id, modelNumber
return myObj;
}
我如何在 HTML
上使用它<span>{{getPhoneName 'id_1234'}}</span> //This line is obviously prints the [[Object]]
Here i am not getting solution how to print modelNumber. I have tried following :
1.{{getPhoneName 'id_1234'.modelNumber}}
2.{{getPhoneName 'id_1234'}}.modelNumber
有人可以帮忙吗?如果您需要更多信息,请告诉我。
如果您只想要一个 属性,您可以简单地 return myObj.property;
并像您已经对 {{getPhoneName 'id_1234'}}
所做的那样显示它。
但是如果你想访问多个属性,你可以 return 数组中的对象,然后像这样使用 each or each-in Blaze 的内置块:
帮手:
"getPhoneName": function (param) {
let myObj = PhoneRegister.findOne({"_id": param});
//This myObj contains name, _id, modelNumber
return [myObj]; // Returning an array in order to use each or each-in
}
HTML(每一个):
{{#each getPhoneName 'id_1234'}}
<span>{{this.property1}}</span>
<span>{{this.property2}}</span>
{{/each}
你也可以看看{{#let}},在某些情况下它也很有用。
你提到你有这个辅助功能:
getPhoneName (_id) {
const myObj = PhoneRegister.findOne({_id});
//This myObj contains name, _id, modelNumber
return myObj;
}
根据您的需要有 2 种方法
首先,如果您只想获得 "name",正如助手暗示的那样 getPhoneName
,您可以改为 return myObj.name;
(还应考虑错误处理以确保 myObj 存在)。
然后您就可以使用它了:
<p>The name of the phone is {{getPhoneName phoneId}}</p>
但是,如果您改为在模板中列出有关 phone 的各种信息,则可以不理会帮助程序,而是通过以下两种不同的方式之一调整您的模板:
1) 使用 #let
在模板中命名对象。
{{#let currentPhone=(getPhoneName phoneId)}}
<ul>
<li>ID: {{currentPhone._id}}</li>
<li>Name: {{currentPhone.name}}</li>
</ul>
{{/let}}
2) 使用 #with
将该对象用作您的数据上下文而不分配名称
{{#with getPhoneName phoneId}}
<ul>
<li>ID: {{_id}}</li>
<li>Name: {{name}}</li>
</ul>
{{/let}}