http://embed.plnkr.co/keagc3y4pmgfs04HJGNC/

Oto link mojego kodu. Próbuję potwierdzić moje przesyłanie, wyłączając przycisk Data Load, gdy plik jest pusty. Praca po raz pierwszy, ale kiedy następnym razem przesłam plik, NG-Zmiana nie działa, a przycisk nadal jest wyświetlany wyłączony, chociaż przesłałem następny plik. Jestem początkującym w Angularjs, więc mogę wykonać jakiś podstawowy błąd. Pomoc.

0
Ayush Shukla 17 luty 2017, 13:12

2 odpowiedzi

Najlepsza odpowiedź

Ponieważ próbujesz ponownie przesłać ten sam plik, wydarzenie onChange nie wystrzeli, ponieważ jest to ten sam plik. Aby rozwiązać ten problem, musisz wyłączyć pole wejściowe po przesłaniu pliku. Niestety, musisz użyć jQuery (lub zdobądź element Wit Wanilla JS). Więc w funkcji {x1}} możesz zrobić coś takiego:

angular.element("input[type='file']").val(null); // Unset Input
$scope.filename = undefined; // Unset $scope property

Zauważ, że nie jest to "kątowy" sposób tego robić. Lepiej byłoby przenieść to do dyrektywy, ponieważ nie należy manipulować domem w kontrolerze.

Aktualizacja : Jak powiedział wcześniej, musisz włączyć jQuery do pracy. Jqlite Kątowa nie obsługuje wybierania elementów Dom przez jego {x0}}. Tak więc, albo umieściłeś jQuery (musi być załadowany przed kątem!) Lub modyfikujesz kod, dzięki czemu można użyć wanilii JS lub Jqlite.

0
Founded1898 27 luty 2017, 11:23
Please change, initially

vm.foo = 'Monthly'

<input type="radio" name="{{item.deviceId}}" ng-model="renew.foo" ng-value="'Monthly'" ng-click="renew.updatePref(item, 'Monthly')">Monthly
<input type="radio"  name="{{item.deviceId}}" ng-model="renew.bar" ng-value="'Yearly'" ng-click="renew.updatePref(item, 'Yearly')">Yearly
you have use ng-change, change event never happen as value for these input remains always same. use,

var vm = this;
you are also using ng-value="Monthly", Monthly is variable (undefiend) for ng-value. either use value="Monthly" or ng-value="'Monthly'".
-1
amit 1984 17 luty 2017, 10:25