J'essaie d'appliquer les propriétés d'objet de objA à objB mais j'ai réalisé Ext.apply est imparfait (ou béni?) D'une manière où il s'applique uniquement les objets de premier niveau ensemble.Existe-t-il une meilleure façon d'utiliser Ext.apply pour combiner des enfants/sous-objets dans un autre objet?
Exemple:
var objA = {
name: 'objA',
baseParams: {
cols: [1,2,3,4,5]
}
};
//used in subclass
var objB = {
name: 'objB',
baseParams: {
limit: 50,
sort: 'name'
}
};
//used in baseclass
var objC = {
name: 'objC',
baseParams: {
as_hash: true,
limit: 20
}
};
Ext.apply(objB,objA); //used in subclass
Ext.apply(objC,objB); //used in baseclass
Exemple de sortie sera:
obj = {
name: 'objA',
baseParams: {
cols: [1,2,3,4,5]
}
};
Je voudrais cette sortie à la place (sortie attendue):
obj = {
name: 'objA',
baseParams: {
cols: [1,2,3,4,5],
as_hash: true,
limit: 50,
sort: 'name'
}
};
Comment puis-je parvenir sans faire ce?
// subclass:
var bpTemp = {};
bpTemp.baseParams = Ext.apply(objB.baseParams, objA.baseParams);
Ext.apply(objB,objA);
Ext.apply(objB,bpTemp);
// base class:
var bpTemp = {};
bpTemp.baseParams = Ext.apply(objC.baseParams, objB.baseParams);
Ext.apply(objC,objB);
Ext.apply(objC,bpTemp);
, attendons avec impatience une bonne solution – ChrisR
Merci, toujours à la recherche d'une réponse si. – CincauHangus