0

私はextjs4 MVCで作業しています。ポイント*で立ち往生しています。これは、extjs4でオブジェクト配列を定義し、それに値を設定し、そのオブジェクトから値を取得する方法です。※やってみましたが解決しません。Qusetion paper があるとします。そこにはいくつかの質問が表示され、オプションが表示されます。適切に選択されたオプションを使用して質問があります。しかし、適切なモデル インスタンスに保存することに成功しません。単一のレコードを特定のモデル インスタンスに保存する方法を知っています。しかし、私は特定のモデル オブジェクトに反復値を格納する方法がわかりません。この問題を解決するにはどうすればよいですか。

1)ここに私のコントローラーファイルコードがあります

temp:function()
    {
        var obj = Ext.create('Demo.model.Poll');
        for(var i=0;i<4;i++)
        {
                var inputs = document.getElementsByName(i); 
                var radio = "";  
                for (var j = 0; j < inputs.length; j++) {
                    if (inputs[j].checked) {
                        name = inputs[j].name;
                        value  = inputs[j].value;
                        //console.log("questionId="+name +" value="+ value);
                        check.set('poll',name);
                        check.set('option',value);
                    }// End of if statment
                }// End of inner for loop
          }//End of outer for loop

        //Here I am going to display values inside object  
        console.log("----------------------------------");
          for(var i=0;i<4;i++)
          {
              console.log(i);
              console.log(check.get('poll'));
              console.log(check.get('option'));
          }
    //Is it possible to save object array to server side in single save method
    //  obj.save();

}// End of temp function

2)そして、このコードを実行した後、モデルに最後に設定された値を取得しました.firebugでは、この結果が得られました. たとえば。

3 
England 

3 
England 

3 
England


3 
England 

何か提案をください

4

2 に答える 2

0

私は自分の質問に対する解決策を見つけました。ここに答えがあります。

//code for getting question name and value from view and send to server side in a asingle request
check:function()
{
    //creating objects in javascript
        var storeObject=this.getStore('qb.QbquestionoptionStore');
    for(var i=0;i<=4;i++)
    {
            var inputs = document.getElementsByName(i); 
            var radio = "";  
            for (var j = 0; j < inputs.length; j++) {
                if (inputs[j].checked) {
                    name = inputs[j].name;
                    value  = inputs[j].value;
                    console.log("questionId="+name +" value="+ value);
                        var check = Ext.create('Balaee.model.qb.QbquestionoptionModel');
                        check.set('questionId',name);
                        check.set('option',value);

                    storeObject.add(check);
                  //console.log("User Infooooooooo: option="+check.get('option')+"questionId="+check.get('questionId'));
                }// End of if statment
            }// End of inner for loop
      }//End of outer for loop
    // code to display data in store object 
      for(var i=0;i<4;i++)
      {
          var record=storeObject.getAt(i);
          console.log("record no="+i);
          console.log("Qusetion Id="+record.get('questionId'));
          console.log("Option="+record.get('option'));
          console.log();
      }
      storeObject.sync();
}// End of check function
于 2013-02-01T07:44:47.450 に答える
0

試してみてください、var myObj = [];

for(.....)
{
   myObj.push(
      {
        'poll' : name, 
        'option' : value
      });
}

アクセスするために、

var i;
for(i=0; i<myObj.length; i++)
{
   console.log(myObj[i].poll);
   console.log(myObj[i].option);
}
于 2013-01-30T09:07:39.523 に答える