1

Nous passons un paramètre d'objet au value converter suivant. Nous passons l'objet au convertisseur de valeur en le copiant manuellement dans un nouvel objet.Transmet un objet directement à un convertisseur de valeur au lieu de le copier manuellement dans un nouvel objet

<select value.bind="config"> 
    <option repeat.for="s of sortOptions" 
      model.bind="s.config">${s.friendlyName} 
    </option> 
</select> 

<div repeat.for="u of users | sort:{ prop: config.prop, dir: config.dir}"> 

Nous aimerions plutôt passer directement l'objet.

<div repeat.for="u of users | sort:config"> 

Comment pouvons-nous faire cela?

Répondre

2

Vous devriez être capable de le faire exactement comme vous le souhaitez. Consultez cet exemple: https://gist.run/?id=49d1b3acf5fe7d168909a4f49dca152e

MyItem.html

<select value.bind="config"> 
    <option repeat.for="s of sortOptions" 
      model.bind="s.config">${s.friendlyName} 
    </option> 
</select> 
<div repeat.for="u of users | sort:config"> 

MyItem.js Assurez-vous que vous définissez une valeur par défaut de votre config!

export class MyItem { 
    users = []; 
    config; 
    sortOptions = [ 
    { config: { propertyName: 'aaa', direction: 'ascending' }, friendlyName: 'aaa' }, 
    { config: { propertyName: 'bbb', direction: 'descending' }, friendlyName: 'bbb' }, 
    { config: { propertyName: 'ccc', direction: 'descending' }, friendlyName: 'ccc' } 
    ]; 

    constructor(userRepo: UserRepository) { 
    this.config = this.sortOptions[0]; 
    } 
} 
+0

Bizarrement, cela ne fonctionne pas pour moi. –

+0

Hmm. Avez-vous par hasard une version vraiment ancienne des bibliothèques Aurelia qui a un bug ou quelque chose? Nous avons frappé RC la semaine dernière. –

+0

Je définis la configuration de tri dans la vue alors que l'objet que vous avez créé la définit dans viewModel. –