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