2013-02-19 8 views
7

In Ember.js mi ritrovo a definire le proprietà calcolate che assomigliano a questo:Ember.js scorciatoia per comune modello proprietà computerizzata

someProp: function(){ 
    return this.get('otherProp'); 
}.property('otherProp') 

o

someProp: function(){ 
    return this.get('otherObject.prop'); 
}.property('otherObject.prop') 

Esiste un modo più breve di scrivere computerizzata proprietà che seguono questi modelli?

+0

penso che si intende scrivere ** tornare this.get (...) ** dentro i vostri corpi di metodo? – mavilein

+0

Wenn vedo questi esempi, mi chiedo quale valore forniscono? In questi semplici esempi, questi metodi creano solo una sorta di alias per una determinata proprietà. O avevi qualcosa di più complesso in mente? – mavilein

+0

@mavilein Grazie. Un'abitudine di scrivere CoffeeScript ... – nicholaides

risposta

12

Dopo aver studiato un po 'si potrebbe asciugare questo un po' fino facendo quanto segue con l'aiuto di Ember.computed.alias:

someProp: Ember.computed.alias("otherObject.prop") 

È possibile utilizzare alias anche per impostare questa proprietà. Dato un oggetto Ember, che implementa la proprietà di cui sopra, si può fare:

obj.set("someProp", "foo or whatever"); // The set will be propagated to otherObject.prop 

Link to Ember Source for Ember.computed.alias


Aggiornamento: Ember.computed.oneWay

Recentemente una nuova scorciatoia immobili computerizzata (oneWay) è stato aggiunto a Ember, che è anche fattibile per questo requisito. La differenza è che la stenografia oneWayfunziona solo nel caso get. Pertanto questa stenografia è più veloce durante la creazione dell'oggetto rispetto al più complesso alias.

someProp: Ember.computed.oneWay("otherObject.prop") 

Link to Ember Source for Ember.computed.oneWay

+0

Fantastico! Questo è ancora più robusto degli esempi che ho dato perché gestisce le proprietà di impostazione, non solo per ottenerle. – nicholaides

Problemi correlati