Ich verwende ng-options
, um das Dropdown-Menü mit Optionen anzuzeigen. Angenommen, ich habe drei Optionen, z. B. Option1, Option2, Option3. Wenn Standardoption1 ausgewählt ist, wird $pristine
zu False
und erneut, wenn er Option1 auswählt, aus prospektiven $pristine
von angularjs sollte dieser Wert falsch sein, aber laut Benutzer er hat nicht die option.So geändert wurde ich nach einer Möglichkeit, diese Änderung zu erkennenÜberprüfen, ob sich der Status des Dropdown-Menüs geändert hat
Antwort
Hier ist die Js fiddle demo
HTML
<div ng-app="myApp">
<div ng-controller="ctrl">
<form name="myForm">
{{myForm.$pristine}}
<select ng-model='list' ng-options='item.name for item in data'>
</select>
</form>
</div>
</div>
JS Code
var app = angular.module('myApp', []);
app.controller('ctrl', function($scope) {
$scope.data = [{
id: 1,
name: 'test'
}, {
id: 2,
name: 'test1'
}];
$scope.list = $scope.data[0];
$scope.$watch('list', function(o, n) {
if ($scope.list == $scope.data[0])
$scope.myForm.$pristine = true;
})
});
Sie fügen haben Uhr auf der Liste Modell kann diese
Dies kann in ng-change selbst getan werden, keine Notwendigkeit, extra $ watch –
@RohanKawade zu verwenden, dann können Sie Methode verwenden, um es zu setzen tun '$ scope.myForm. $ SetPristine (true);' Siehe https: // docs .angularjs.org/api/ng/type/form.FormController –
Das ist genau das erreicht werden, was ng-Änderung für ist.
Verwendung so sein würde (hinzugefügt $ index Sie eine andere Option zu zeigen):
HTML
<div ng-app="myApp">
<div ng-controller="listController">
<form name="myForm">
<select ng-model="currOption"
ng-options='item.name for item in data'
ng-change="optionChanged(currOption, $index)">
</select>
</form>
</div>
</div>
-Controller
angular.module('myApp')
.controller('listController', function($scope) {
$scope.data = [{
id: 1,
name: 'option1'
}, {
id: 2,
name: 'option2'
}, {
id: 3,
name: 'option3'
}];
$scope.optionChanged(option, index) {
// option = the selection the user just made.
// index = the index of the selection in your data. I.E. $scope.data[index]
};
});
Aber immer noch bleibt der $ unberührte Zustand falsch. –
@RohanKawade Wenn Sie es auf True setzen möchten, können Sie 'myform. $ SetPristine();' in die Funktion '$ scope.optionChanged' aufrufen. –
- 1. Symfony überprüfen, ob sich die E-Mail-Adresse des Benutzers während des Einloggens geändert hat
- 2. Überprüfen Sie, ob sich Webformularwerte geändert haben
- 3. Erkennen, ob sich die Systemuhr geändert hat?
- 4. Parse.com: ArrayList des Zeigers hat sich geändert
- 5. Eine Aktion nur auslösen, wenn sich der Status geändert hat?
- 6. Erkennen, ob sich der Inhalt eines Ordners geändert hat?
- 7. Überprüfen, ob der gewählte Status die eingegebene Postleitzahl hat jQuery
- 8. So überprüfen Sie, ob sich der Wert auf einer Website geändert hat
- 9. So überprüfen Sie, ob sich der Datenbankzeilenwert vor dem Füllen eines Datasets geändert hat
- 10. Hat sich das Aktualisierungsverhalten des Repositorys geändert?
- 11. Überprüfen, ob sich ein Benutzer angemeldet hat
- 12. Überprüfen Sie, ob sich die Datei mit der HTML5-Datei-API geändert hat.
- 13. Status des Prozesses überprüfen
- 14. Wie kann ich in meine App gelangen, wenn sich der Status des Hosts geändert hat?
- 15. Überprüfen, ob der optionale Parameter geändert wurde
- 16. Überprüfen Sie, ob UI-Status hat Vorwärts UI-Zustand
- 17. Überprüfen, ob Bool Wert geändert
- 18. Kann festgestellt werden, ob sich die SIM/Telefonnummer geändert hat?
- 19. Woher weiß ich, ob sich eine "Versammlung" tatsächlich geändert hat?
- 20. prüfen, ob sich das Modell seit dem Laden des Controllers geändert hat
- 21. WKWebView-Funktion zum Erkennen, ob sich die URL geändert hat
- 22. Bestimmen, ob Observable hat sich in berechnet geändert
- 23. Wie erkennt man, ob sich eine Java-Systemeigenschaft geändert hat?
- 24. Laravel - Überprüfen Sie, ob der Wert einer Spalte geändert wurde
- 25. Überprüfen, ob der Kunde bereits gewählt hat
- 26. Wie wird der Fade-Out-Effekt aktiviert, wenn sich der Status des Hintergrunds einer Ansicht auf Android geändert hat?
- 27. Hat sich die Website geändert?
- 28. Überprüfen des Status der GCM-Nachricht
- 29. Überprüfen, ob sich ein Benutzer bereits angemeldet hat
- 30. Benachrichtigen des Moderators, dass sich das Modell geändert hat
können Sie Beiträge verfassen Was hast du probiert? –