我试图从更新Autoform生成表单的方法中获取嵌套数组的值。
我的架构设置如下......
Schema.ContactDetails = new SimpleSchema({
orderedBy: {
type: String,
label: "Ordered By",
optional: true,
},
[...]
)};
Orders.attachSchema(new SimpleSchema({
[...]
orderDetails: {
type: Schema.OrderDetails,
optional: true,
blackbox: true
},
[...]
)};
然后我用这个设置了Autoform ......
{{#autoForm collection="Orders" id="updateOrderForm" type="method-update" meteormethod="updateOrder" doc=this}}
[...]
{{/autoForm}}
这是 updateOrder 方法......
updateOrder: function (doc,doc_id) {
check(doc, Orders.simpleSchema());
console.log(doc);
//Modify doc here
Orders.update({_id: doc_id}, doc);
},
以上console.log(doc);
输出以下内容......
{ '$set':
{ createdBy: 'o5Wye6LLMGNXLn7HY',
createdAt: Sat Apr 09 2016 22:15:27 GMT+1000 (AEST),
'contactDetails.orderedBy': 'MvCun8p6vxndj3cr8',
updatedAt: Mon Apr 11 2016 11:47:31 GMT+1000 (AEST) },
'$unset':
{ […]
我的问题是,我需要获得“联系详细信息”或“联系”。 updateOrder方法中的值,但我似乎无法访问它。我试过以下......
var orderedBy = doc.$set.contactDetails.orderedBy;
调用方法' updateOrder' TypeError:无法读取属性' orderedBy'未定义的
var orderedBy = doc.$set.'contactDetails.orderedBy';
意外的令牌错误
提前致谢
答案 0 :(得分:0)
在这里回答...... Dynamically access object property using variable
这里...... Extract value from object using javascript
var orderedBy = doc.$set['contactDetails.orderedBy'];