2009-10-19 12 views
5

Utilizzo del framework AngularJS, come è possibile che il pulsante "Invia" aggiorni sia l'entità corrente sia cancelli l'ID di ancoraggio: fondamentalmente voglio aggiungere rapidamente voci, ma trasforma sempre il mio modulo di aggiunta in un modifica il modulo.

Ecco la mia div attuale, che non funziona, è come se fosse ignorando il $anchor.task=null ...

Si noti che il "Aggiungi Nuovo" pulsante funziona bene!

<div> 
    Description: <input name="task.desc" ng-required><br> 
    <a href="#" ng-action="task.$save(); $anchor.task=null">Save</a> 
    <input type="button" value="Add New" ng-action="$anchor.task=null"> 
</div> 

risposta

4

Se si vuole avere fretta aggiunge qui è quello che avete bisogno di cambiare

suppongo che voi avere: NG-entità = "task = Task" nel codice. Devi cambiarlo in ng-entity = "Task" questo cambia la dichiarazione in modo che non sia associata all'ancora. Vedi http://docs.getangular.com/Ng-entity per maggiori dettagli. Ciò significa anche che devi istanziare manualmente l'istanza dell'attività in ng-init.

Poi nel ancoraggio Save è necessario creare un'istanza di documento Task con i valori di default dell'oggetto compito: Task (compito)

di quanto è necessario salvarlo:. Task (compito) $ save()

Infine si desidera cancellare il modulo, quindi è necessario reimpostare l'oggetto compito in bianco. Questo può essere fatto solo dopo il salvataggio dell'oggetto, quindi è necessario includere una richiamata al metodo $ save(): Attività (attività). $ Save ({: $ root.task = {};})

$ radice riferisce a radicare portata come ambito all'interno del callback non è la stessa come ambito in cui è dichiarata compito.

<div ng-entity="Task" ng-init="task={}"> 
     Description: <input name="task.desc" ng-required><br> 
     <a href="#" ng-action="Task(task).$save({: $root.task={} })">Save</a> 
</div> 
Problemi correlati