A mio avviso, ho un pulsante che desidero disattivare quando i dati del modello non sono sporchi.bindAttr reverse boolean
Quando output: <button {{ action "update" }} {{bindAttr disabled="isDirty"}}>Save</button>
è abilitato quando i dati non sono sporchi e disabilitato quando i dati sono sporchi.
Voglio invertire che così ho provato questo: <button {{ action "update" }} {{bindAttr disabled="!isDirty"}}>Save</button>
ma ora non controlla affatto la sporcizia. Come si inverte il valore booleano all'interno di un helper bindAttr?
Ecco il mio codice:
controller
App.SiteController = Em.ObjectController.extend({
isNotDirty: function() {
return !this.get('isDirty');
}.property('content')
});
App.SiteEditController = Em.ObjectController.extend({
needs : [ 'site' ]
});
Template
{{#with controllers.site}}
<div>{{ isDirty }}</div>
<div>{{ isNotDirty }}</div>
<div class="control-group">
<label class="control-label" for="name">Name</label>
<div class="controls">
{{view Ember.TextField valueBinding="name"}}
</div>
</div>
<div class="form-actions">
<button {{bindAttr disabled="isNotDirty"}} class="btn btn-primary">Save</button>
</div>
{{/with}}
ho trasmessi i isDirty
una proprietà isNotDirty
così ho potuto guardarli cambiare. Ma solo la proprietà isDirty
cambia quando cambio il valore del campo di testo,
è possibile creare una proprietà calcolata che invertire questo. Si potrebbe fare qualcosa come '... isNotDirty: function() {return! This.get ('content.isDirty'); } .property ('content'), ... 'nel ** controller item ** (' ObjectController') e si collega invece a quella proprietà: '' – MilkyWayJoe
Prova a usare .property ('content.isDirty') Dovrebbe funzionare ora. – mavilein
Funziona, ma quando rimuovo '