在Autoform方法中更新

时间:2016-04-11 02:57:19

标签: meteor meteor-autoform

我试图从更新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';

意外的令牌错误

提前致谢

1 个答案:

答案 0 :(得分:0)

在这里回答...... Dynamically access object property using variable

这里...... Extract value from object using javascript

var orderedBy = doc.$set['contactDetails.orderedBy'];