AngularJS – триггер при выборе переключателя

Я искал и пробовал много вариантов ng-xxxx, но не смог найти его. Я просто хочу вызвать некоторую функцию в controllerе, когда выбран переключатель.

Так что это может быть похоже на следующее .. (Конечно, ниже код не работает)

 

Есть ли способ достичь того, чего я хочу?

Существует, по меньшей мере, два разных метода вызова функций при выборе переключателя:

1) Использование директивы ng-change :

  

и затем в controllerе:

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

Вот jsFiddle: http://jsfiddle.net/ZPcSe/5/

2) Наблюдение за моделью изменений. Это не требует ничего особенного на уровне ввода:

  

но в controllerе можно было бы:

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

И jsFiddle: http://jsfiddle.net/vDTRp/2/

Зная больше о вашем прецеденте, вы можете предложить адекватное решение.

Должен использовать ngChange вместо ngClick, если источником запуска не является клик.

Является ниже, что вы хотите? что конкретно не работает в вашем случае?

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

В новых версиях угловых (я использую 1.3) вы можете в принципе установить модель, а значение и двойное связывание выполняют всю работу, в которой этот пример работает как шарм:

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

я предпочитаю использовать ng-значение с ng-if, [ng-value] будет обрабатывать триггерные изменения

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

Для динамических значений!

 

в controllerе

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

Другим подходом является использование Object.defineProperty для установки value в качестве свойства set getter в области controllerа, тогда каждое изменение свойства value вызовет функцию, указанную в setter:

HTML-файл:

    

Файл javascript:

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

см. этот плункер для реализации

  
currently selected: {{radioValue}}
  • Как я могу использовать ui-router во внешней ссылке, например google.com?
  • Как обновить / недействить кеш ресурсов $ в AngularJS
  • Как отформатировать дату с помощью ng-модели?
  • Ошибка Urularjs Uncaught: при переходе на V1.3
  • Маршрутизация и токен аутентификации AngularJS с webapi
  • Несколько директив , запрашивающих новую / выделенную область
  • Есть ли способ сделать частичную загрузку AngularJS вначале, а не в случае необходимости?
  • Миграция AngularJS в Angular 4,5 (с DEMO)
  • Угловой разрыв JS ForEach
  • AngularJS - Доступ к охвату ребенка
  • Как указать параметр заголовков для пользовательских действий с угловым $ ресурсом
  • Interesting Posts

    «Обнаружение предметов» … yawn

    с открытым исходным кодом обработка изображений в java

    Почему RestTemplate не связывает ответное представление с PagedResources?

    # 1071 – Указанный ключ слишком длинный; максимальная длина ключа – 767 байт

    Преимущества Java7 с ресурсами

    Как получить все зарегистрированные маршруты в Express?

    Почему моя мышь случайным образом отменяет выбор и отменяет щелчок?

    Заполнение каскадных выпадающих списков в JSP / Servlet

    Как я могу ограничить Windows 7 только использованием локальной подсети, но заблокировать интернет

    Скопируйте изображения обратно в камеру и заставьте камеру распознать их

    Как перезаписать групповую политику – домашняя страница

    Использовать жесткий диск в качестве портативного жесткого диска?

    getResourceAsStream () vs FileInputStream

    Повышение десятичной дробности до десятичной величины?

    SpinWait против ожидания ожидания. Какой из них использовать?

    Давайте будем гением компьютера.