Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs 设置模型的新属性,不要将其标记为“脏”_Extjs_Extjs4 - Fatal编程技术网

Extjs 设置模型的新属性,不要将其标记为“脏”

Extjs 设置模型的新属性,不要将其标记为“脏”,extjs,extjs4,Extjs,Extjs4,我有一个存储(带有代理“内存”)和一个模型数组,当我创建一个模型时,我使用set(field,newValue)设置了他的属性,但这个方法将其标记为derty,我想知道我可以设置field的值,而不是将其标记为dirty,下面是我的示例: for(var i=0;i<questions.length;++i){ var question=Ext.create('DCM.model.TCL'); question.set('scope',questions[

我有一个存储(带有代理“内存”)和一个模型数组,当我创建一个模型时,我使用set(field,newValue)设置了他的属性,但这个方法将其标记为derty,我想知道我可以设置field的值,而不是将其标记为dirty,下面是我的示例:

 for(var i=0;i<questions.length;++i){
        var question=Ext.create('DCM.model.TCL');
        question.set('scope',questions[i].scope);
        question.set('topic',questions[i].topic);
        question.set('area',questions[i].area);
        question.set('target',questions[i].target);
        var responses=questions[i].responses;
        var sumJan=0,nbResponsesJan=0;
        var sumFeb=0,nbResponsesFeb=0;
        var sumMar=0,nbResponsesMar=0;
        var sumApr=0,nbResponsesApr=0;
        var sumMay=0,nbResponsesMay=0;
        var sumJun=0,nbResponsesJun=0;
        var sumJul=0,nbResponsesJul=0;
        var sumAout=0,nbResponsesAout=0;
        var sumSep=0,nbResponsesSep=0;
        var sumOct=0,nbResponsesOct=0;
        var sumNov=0,nbResponsesNov=0;
        var sumDec=0,nbResponsesDec=0;
        for(var j=0;j<responses.length;++j){
            switch(responses[j].month){
                case 0:sumJan+=responses[j].score;++nbResponsesJan;break;
                case 1:sumFeb+=responses[j].score;++nbResponsesFeb;break;
                case 2:sumMar+=responses[j].score;++nbResponsesMar;break;
                case 3:sumApr+=responses[j].score;++nbResponsesApr;break;
                case 4:sumMay+=responses[j].score;++nbResponsesMay;break;
                case 5:sumJun+=responses[j].score;++nbResponsesJun;break;    
                case 6:sumJul+=responses[j].score;++nbResponsesJul;break; 
                case 7:sumAout+=responses[j].score;++nbResponsesAout;break;
                case 8:sumSep+=responses[j].score;++nbResponsesSep;break;
                case 9:sumOct+=responses[j].score;++nbResponsesOct;break;
                case 10:sumNov+=responses[j].score;++nbResponsesNov;break;
                case 11:sumDec+=responses[j].score;++nbResponsesDec;break;    
            }        
        }
        if(nbResponsesJan>0){
            question.set('jan',sumJan/nbResponsesJan);
        }
        if(nbResponsesFeb>0){
            question.set('feb',sumFeb/nbResponsesFeb);
        }
        if(nbResponsesMar>0){
            question.set('mar',sumMar/nbResponsesMar);
        }
        if(nbResponsesApr>0){
            question.set('apr',sumApr/nbResponsesApr);
        }
        if(nbResponsesMay>0){
            question.set('may',sumMay/nbResponsesMay);
        }
        if(nbResponsesJun>0){
            question.set('jun',sumJun/nbResponsesJun);
        }
        if(nbResponsesJul>0){
            question.set('jul',sumJul/nbResponsesJul);
        }
        if(nbResponsesAout>0){
            question.set('aout',sumAout/nbResponsesAout);
        }
        if(nbResponsesSep>0){
            question.set('sep',sumSep/nbResponsesSep);
        }
        if(nbResponsesOct>0){
            question.set('oct',sumOct/nbResponsesOct);
        }
        if(nbResponsesNov>0){
            question.set('nov',sumNov/nbResponsesNov);
        }
        if(nbResponsesDec>0){
            question.set('dec',sumDec/nbResponsesDec);
        }
       questionsModel[i]=question; 
    }
    tclController.getStore('TCL').loadRawData(questionsModel);
 }               
for(变量i=0;i0){
问题集('feb',sumFeb/nbResponsesFeb);
}
如果(NBResponseSAR>0){
问题集('mar',sumMar/nbresponsemar);
}
如果(NBResponseSPAR>0){
问题集('apr',sumApr/nbResponsesApr);
}
如果(nbResponsesMay>0){
问题集(‘五月’、总结日/nbResponsesMay);
}
如果(nbResponsesJun>0){
问题集('jun',sumJun/nbResponsesJun);
}
如果(nbResponsesJul>0){
问题集('jul',sumJul/nbResponsesJul);
}
如果(nbResponsesAout>0){
问题集('aout',sumAout/NBR响应);
}
如果(NBResponseSP>0){
问题集(“sep”,sumSep/NBResponseSP);
}
如果(NBResponseAct>0){
问题集('oct',SUMCOCT/NBR响应);
}
如果(nbResponsesNov>0){
问题集('nov',sumNov/nbResponsesNov);
}
如果(nbResponsesDec>0){
问题集('dec',sumDec/nbResponsesDec);
}
问题模型[i]=问题;
}
tclController.getStore('TCL').loadRawData(问题模型);
}               
我的网格行看起来像脏记录,如何解决它

塔克斯

调用
question.commit()
这样做可以:

me.phantom = me.dirty = me.editing = false;

使用Ext JS 5和6,您可以将
false
传递给
dirty
选项。当设置为
false
时,设置的字段值将被理解为非脏(从服务器刷新)。脏选项默认为true

record.set({ name: 'value', age: 42}, {
  dirty: false
})

extjs5引入了
set
方法的options参数

record.set('age', 42, {
  dirty: false
})