【问题标题】:How to iterate through an array containing objects in Meteor implementing SimpleSchema如何在 Meteor 实现 SimpleSchema 中遍历包含对象的数组
【发布时间】:2016-11-03 09:21:23
【问题描述】:

我有一个简单的架构实现,如下所示。有一个包含对象的数组。每个对象都有一个单选按钮。我需要提取每个单选按钮的值。如何遍历数组?

test_schema = new SimpleSchema ({


    object:{
        type:Array,

    },
    "object.$":{
        type:Object
    },

    "object.$.condition" :{
        type:String,
        autoform:{
            type: "select-radio-inline",
            options:[{label:'1', value:"one"}]
        },
    },


 "zod": {
    type: String,
     optional:true,
     custom: function () {

         alert(this.field('object').value);


     }
}

我尝试了一种增量方法,我删除了数组定义,只从对象中检索数据。像这样的东西起作用了:

this.field('object.condition').value

但是,在将对象包含在数组中之后,这样的事情就不起作用了。

this.field('object.$.condition').value

有效的是:

this.field('object.0.condition').value

这会检索第一个对象的条件值。我该如何提取其他元素?

【问题讨论】:

  • 在将对象作为变量的 js 代码中还是在简单模式定义中?

标签: javascript arrays meteor meteor-autoform simple-schema


【解决方案1】:

“$”符号是 Schema 定义中数组索引的占位符。

当访问实际实例时,您将其替换为实际数组索引。

所以第一个索引为 0,下一个索引为 1,依此类推:

for (var i=0, i<object.length, i++) {
  console.log( i, this.field('object.'+i+'.condition').value
}

【讨论】:

  • 我知道了,但我该如何迭代呢?我试图把它放到一个 for 循环中,但它并没有做太多。例如 - for (var i =0, i
  • 字段函数的参数是一个字符串,要创建一个有效的字符串,您需要使用变量 i,如我的回答所示。不是您评论中的字母 i。
猜你喜欢
  • 2014-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-23
  • 1970-01-01
  • 1970-01-01
  • 2019-10-13
相关资源
最近更新 更多