Buduję przyciski radiowe dynamicznie. ng-change='newValue(value)
przestaje być wywoływane po każdym naciśnięciu przycisku radiowego.Kątowe: radiobuttons przestają strzelać "ng-change" po każdym kliknięciu
to działa: Kliknięcie przycisku radio zmienia wartość na foo/bar/baz. http://jsfiddle.net/ZPcSe/19/
<div ng-controller="MyCtrl">
<input type="radio" ng-model="value" value="foo" ng-change='newValue(value)'>
<input type="radio" ng-model="value" value="bar" ng-change='newValue(value)'>
<input type="radio" ng-model="value" value="baz" ng-change='newValue(value)'>
<hr>
{{value}}
</div>
ten kod nie działa: Opcja {{value}} - „label” nie jest aktualizowany raz w przycisk radiowy został naciśnięty co najmniej raz. Aparently ng-change nie jest już zwalniany.
<div ng-controller="MyCtrl">
<span ng-repeat="i in [0, 1, 2]">
<input name="asdf" type="radio" ng-model="value" value={{i}} ng-change='newValue(value)'>
</span>
{{value}}
</div>
Controlles to samo za każdym razem:
var myApp = angular.module('myApp', []);
function MyCtrl($scope) {
$scope.value = '-';
$scope.newValue = function(value) {
$scope.value = value;
}
}
Dzięki za pomoc.
To wygląda jak magia - jak i gdzie jest wywoływana nazwa '$ scope.newValue'? Nie ma zdarzenia 'ng-change' określonego w kodzie HTML, więc gdzie jest uruchamiane? – Richard
@Richard Nie strzela; była to funkcja w pierwotnym pytaniu, więc skopiowałem ją; Myślę, że 'console.log' został pozostawiony z niektórych debugowania na JSFiddle. –