2013-02-15 6 views
5

Come faccio a fare riferimento a un nome di campo che contiene un punto nel modello di baffi? Per esempio, se ho una vista comeCome faccio a fare riferimento a un nome di campo che contiene un punto nel modello di baffi?

{ 
    "foo.bar": "my value" 
} 

allora come posso mettere my value in un modello? L'uso di {{foo.bar}} non funziona perché il baffo pensa che il punto sia parte del percorso, come dovrebbe esserci un "foo" che ha una "barra".

+0

sarebbe più facile di refactoring la proprietà a 'foo_bar'. Non è una soluzione? –

risposta

5

Non è possibile leggere una chiave con un . in esso da Moustache. Le specifiche di Moustache dettano che . viene utilizzato per dividere i nomi dei contenuti. Moustache fornisce un mezzo di escape ma solo per il contenuto HTML.

Baffi spec: interpolation

Avrete bisogno di pre-processo dei dati per renderlo utilizzabile in un modello Baffi. Il modo in cui lo farai dipenderà da quanto è diffusa la questione.

Ho trovato un semplice esempio per rimappare una proprietà in JavaScript, scritto da Jon:

function rename(obj, oldName, newName) { 
    if(!obj.hasOwnProperty(oldName)) { 
     return false; 
    } 

    obj[newName] = obj[oldName]; 
    delete obj[oldName]; 
    return true; 
} 

Fonte

: Rename the keys… in an object