AngularJS – Dispara cuando se selecciona el botón de radio

Busqué e intenté muchas opciones de tipo ng-xxxx pero no pude encontrar la que buscaba. Solo quiero llamar a alguna función en el controlador cuando se selecciona el botón de opción.

Por lo tanto, podría ser similar a seguir … (Por supuesto, el código siguiente no funciona)

 

¿Hay alguna manera de lograr lo que quiero?

Hay al menos 2 métodos diferentes de invocación de funciones en la selección del botón de selección:

1) Uso ng-change directiva ng-change :

  

y luego, en un controlador:

 $scope.newValue = function(value) { console.log(value); } 

Aquí está el jsFiddle: http://jsfiddle.net/ZPcSe/5/

2) Mirando el modelo de cambios. Esto no requiere nada especial en el nivel de entrada:

  

pero en un controlador uno tendría:

 $scope.$watch('value', function(value) { console.log(value); }); 

Y el jsFiddle: http://jsfiddle.net/vDTRp/2/

Saber más acerca de su caso de uso ayudaría a proponer una solución adecuada.

Debe usar ngChange en lugar de ngClick si la fuente de activación no es desde el clic.

¿Está abajo lo que quieres? ¿Qué exactamente no funciona en tu caso?

 var myApp = angular.module('myApp', []); function MyCtrl($scope) { $scope.value = "none" ; $scope.isChecked = false; $scope.checkStuff = function () { $scope.isChecked = !$scope.isChecked; } } 
{{value}} isCheck:{{isChecked}}

En las versiones más nuevas de angular (estoy usando 1.3) básicamente puedes establecer el modelo y el valor y el doble enlace hacen todo el trabajo. Este ejemplo funciona como un amuleto:

 angular.module('radioExample', []).controller('ExampleController', ['$scope', function($scope) { $scope.color = { name: 'blue' }; }]); 
    
Red
Green
Blue
color = {{color.name}}

prefiero usar ng-value con ng-if, [ng-value] manejará los cambios de activación

  //to show and hide input by removing it from the DOM, that's make me secure from malicious data  

Para valores dynamics!

 

en el controlador

 $scope.changeTipoAcesso = function(value) { console.log(value); }; 

Otro enfoque es el uso de Object.defineProperty para establecer el value como una propiedad setter getter en el ámbito del controlador, luego cada cambio en la propiedad value desencadenará una función especificada en el setter:

El archivo HTML:

    

El archivo javascript:

 var _value = null; Object.defineProperty($scope, 'value', { get: function () { return _value; }, set: function (value) { _value = value; someFunction(); } }); 

ver este plunker para la implementación

  
currently selected: {{radioValue}}