Foros del Web » Programando para Internet » Javascript » Frameworks JS »

this en angularjs

Estas en el tema de this en angularjs en el foro de Frameworks JS en Foros del Web. hola, No encuentro la forma de obtener el elemento actual que ejecuto la función en jquery es con this $('.miclase').click(function(){ this.css("background","#f00"); }); ese this nose ...
  #1 (permalink)  
Antiguo 17/09/2017, 17:19
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 557
Antigüedad: 8 años, 9 meses
Puntos: 9
this en angularjs

hola,

No encuentro la forma de obtener el elemento actual que ejecuto la función

en jquery es con this

$('.miclase').click(function(){

this.css("background","#f00");

});

ese this nose hace algo igual en angujar


si me pueden ayudar
  #2 (permalink)  
Antiguo 17/09/2017, 17:58
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.803
Antigüedad: 9 años, 9 meses
Puntos: 214
Respuesta: this en angularjs

Saludo

Estando en el controller, con this,
aunque vale $scope en anteriores,
depende cual versión se maneje.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 17/09/2017, 18:05
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 557
Antigüedad: 8 años, 9 meses
Puntos: 9
Respuesta: this en angularjs

como ejemplo tengo algo asi

index.html
Código HTML:
Ver original
  1. <li ng-click="pag('1')"><div>1</div></li>
  2. <li ng-click="pag('2')"><div>2</div></li>

appjs.js
Código Javascript:
Ver original
  1. angular.module("sitio",[])
  2.         .controller("paginador",function($scope){
  3.            
  4.             $scope.pag = function(id){
  5.                
  6.                 this. //???
  7.                 o
  8.                 $scope. //???
  9.  
  10.                
  11.             }
  12.            
  13.         });

quiero que al hacer click cambie cualquier cosa mediante css o agregar una clase como lo hace jquery con addClass
  #4 (permalink)  
Antiguo 17/09/2017, 23:21
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.803
Antigüedad: 9 años, 9 meses
Puntos: 214
Busqueda Respuesta: this en angularjs

Saludo

Según la versión que parece que estás manejando,
te sirve cualquiera de los dos (this o scope)

Obviamente, necesitas para el caso que mencionas,
que lo que quieras tenga una variable ya sea en el id,
en el class, o en el style.

Y lo más sencillo sería que por ej arranque con un id, class o style inicial,
y que al dar clic esa variable cambie el valor a un estilo definido directamente
en el clic, o si fue un id o class, que tome un id o class de los que se tienen
aparte en un css.

Ej

Código Javascript:
Ver original
  1. <!-- con style-->
  2. <li style='{{test}}' ng-click="pag('1')">
  3. <!-- con id-->
  4. <li id='{{test}}' ng-click="pag('1')">
  5. <!-- con class-->
  6. <li class='{{test}}' ng-click="pag('1')">



Código Javascript:
Ver original
  1. angular.module("sitio",[])
  2.         .controller("paginador",function($scope){
  3.             //con style
  4.             $scope.test = 'background-color:#fff';
  5.             //con id o class
  6.             $scope.test = 'css-test1';
  7.             $scope.pag = function(id){
  8.                 //con this
  9.                 this.test = '';
  10.                 //con scope
  11.                 $scope.test = '';                
  12.             }
  13.            
  14.         });
  15.         .controller("paginador",function($scope){
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por mortiprogramador; 17/09/2017 a las 23:27

Etiquetas: form, javascript
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:41.