如何在ext js4中创建对象数组并为其设置值?

时间:2013-01-28 14:43:27

标签: extjs extjs4

我在extjs4 MVC工作。我在哪里卡住* 。这是如何在extjs4中定义对象数组并为其设置值以及从该对象检索值。 *我尝试但尚未解决。 假设我有Qusetion paper.Which显示一些问题与选项。我有适当选择的选项qustion。但我没有成功将它存储在适当的模型实例。我知道如何将单个记录存储到特定的模型实例。但我不知道如何将重复值存储到特定的模型对象。我如何解决这个问题。

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 

请给我一些建议

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分: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