In questo esempio, ho un input con una direttiva allegata. La direttiva ha lo scopo di visualizzare i messaggi accanto all'input. C'è un altro input e un pulsante per aggiungere messaggi. Una volta visualizzati alcuni messaggi, concentrarsi sull'input con la direttiva allegata dovrebbe cancellare i messaggi. http://jsfiddle.net/viro/WBqxf/
Quindi ho una direttiva con un modello isolato e sto cercando di aggiornare il modello quando l'elemento che ha la direttiva viene messo a fuoco. Sembra che devo avvolgere callback per eventi di portata $ applicare se voglio aggiornare il modello:.
element.on('focus',function(){
scope.$apply(function(){
console.log("focus !");
scope.tstMsg=[];
})
});
suppongo devo avvolgerla in $ applicare perché sto utilizzando callback degli eventi jqlite ed io Immagino che corrano "fuori" angularJS, ma non l'ho trovato chiaramente dichiarato nei documenti.
Sto facendo bene o è un hack?
C'è un modo migliore per farlo?
usa 'ng-focus' e ti salva codice aggiuntivo per gestori di eventi extrenali http://docs.angularjs.org/api/ng.directive:ngFocus – charlietfl
Ma per ogni elemento che ha la direttiva allegata, voglio lo stesso comportamento a fuoco, indipendentemente dal controller in cui si trova l'elemento. Con ngFocus, avrei bisogno che ogni elemento eseguisse una funzione che ripristina l'array di messaggi, è noioso se può essere automatizzato dalla direttiva, non è vero? –