2016-07-01 1 views
0

私は以下のように単純なスキーマの実装をしています。オブジェクトを含む配列があります。各オブジェクトにはラジオボタンがあります。私は各ラジオボタンの値を抽出する必要があります。配列をどのようにトラバースするのですか?SimpleSchemaを実装しているMeteorでオブジェクトを含む配列を反復する方法

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); 


    } 
} 

私は配列定義を削除し、objetsだけからデータを取得するインクリメンタルなアプローチを試みました。

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

しかし、配列内にオブジェクトを含むと、このようなものは動作しません。

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

何作品は次のとおりです。

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

これは、最初のオブジェクトの状態値を取得します。どうすれば他の要素を抽出することができますか?

+0

? –

答えて

0

'$'記号は、スキーマ定義の配列インデックスのプレースホルダです。

実際のインスタンスにアクセスするときは、実際の配列インデックスで置き換えます。

だから、最初のものはインデックス0を持って、次はように、インデックス= 1を有し、かつ:

あなたが変数としてか、あなたの簡単なスキーマの定義でオブジェクトを持っているjsのコードで
for (var i=0, i<object.length, i++) { 
    console.log(i, this.field('object.'+i+'.condition').value 
} 
+0

私はそれを得ましたが、それをどのように反復するのですか?私はそれをforループに入れて仲良くしていましたが、それはあまりできませんでした。例えば、(var i = 0、i blueren

+0

これを行う方法でコードを更新しました。 –

+0

フィールド関数への引数は文字列です。私の答えのように変数iを使う必要があるものを作成するには、あなたのコメントのように、私の手紙ではありません。 –

関連する問題