Come ottenere l'elemento body
nella direttiva angolare? il mio obiettivo è fare ciò che si fa con jquery $('body').innerWidth();
all'interno della direttiva. Non voglio usare l'implementazione jqlite integrata jQuery ma angolare.Angularjs - get body element all'interno della direttiva
risposta
Se è necessario accedere all'elemento corpo dall'interno di una direttiva che viene applicata su un altro elemento, è possibile usufruire del servizio $document in questo modo ..
app.directive("myDirective", function($document) {
return function(scope, element, attr) {
var bodyWidth = $document[0].body.clientWidth;
console.log("width of body is "+ bodyWidth);
};
});
<button my-directive>Sample Button</button>
Si potrebbe anche utilizzare i metodi DOM traversal fornito in jqLite (anche se sono molto meno potenti di quanto offre jQuery). Ad esempio, è possibile eseguire una ricerca ricorsiva utilizzando il metodo angular.element.parent()
per trovare il tag del corpo.
Mi dispiace, avrei dovuto menzionare. La mia direttiva è all'interno del tag del corpo. È possibile accedere al corpo, che può essere al di sopra dell'albero (non un elemento figlio) – bsr
quindi, nel tuo esempio, è possibile ottenere la larghezza del corpo all'interno della cartella dove è stata applicata la directory TABELLA – bsr
Ho aggiornato la mia risposta. – jessegavin
Ancora una variante con l'attuazione find()
che è incluso nella jQLite di angolare:
app.directive("myDirective", function() {
return function(scope, element, attr) {
var body = angular.element(document).find('body');
console.log(body[0].offsetWidth);
};
});
Se si guarda il codice angolare sotto '$ SnifferProvider' vedrai un riferimento a' document.body', con 'document' semplicemente essendo' document = $ document [0] || {} ' – Izhaki
- 1. Callback direttiva angularJS
- 2. PHP: get array element
- 3. Test della direttiva angularjs con dipendenze
- 4. Collegamento dati all'interno della direttiva AngularJs
- 5. Comunicazione direttiva-direttiva in AngularJS?
- 6. jQuery - get neighborhood element
- 7. Creazione della direttiva AngularJS con Plupload
- 8. Angularjs personalizzato select2 direttiva
- 9. AngularJS: watch element visibilty
- 10. PHP get body request PUT
- 11. $ indice di ngRepeat all'interno della direttiva angularjs
- 12. unit test direttiva angularjs
- 13. AngularJS vs TemplateURL nella direttiva
- 14. Direttiva canvas semplice in angularjs
- 15. validità vigilanza direttiva AngularJS
- 16. Direttiva AngularJS Definizione controller
- 17. AngularJS in HEAD vs BODY
- 18. Handle Guzzle exception e get HTTP body
- 19. AngularJS - Modifica del valore di input della direttiva Attribute
- 20. AngularJS Argomento della direttiva personalizzata con gli spazi
- 21. Visualizzazione del valore della funzione in una direttiva AngularJS
- 22. Chiamare i metodi della direttiva dal controller principale in AngularJS
- 23. Direttiva bootstrap datepicker per angularjs
- 24. Trova elemento figlio nella direttiva AngularJS
- 25. jQuery get element per tag di ruolo
- 26. AngularJS - accesso alle proprietà della direttiva padre dalle direttive secondarie
- 27. php imap - get body e make plain
- 28. twisted get body of POST request
- 29. angularjs direttiva: $ rootScope: errore infdig
- 30. AngularJS - aggiungi riga dopo elemento nella direttiva
volevo ottenere l'accesso al tag body per modificare la classe - ma angolare ha attacchi che dovrebbero essere usati - è solo che per me l'ambito non è presente nella mia direttiva sepolta (una casella modale) questa modale ha una classe da inserire nel tag del corpo che puoi capire come questo aiuti. Preferisco usare un'associazione dalla logica nella mia direttiva ... ma dalla direttiva come posso accedere all'ambito corretto? Quello che commento qui non è una risposta, ma alcune idee su questo problema. – landed