このフィドルを見てください。フィールドがフォーカスされると、ドロップダウン ボックスが表示されます。ドロップダウン ボックス内の要素をクリックすると、モデルの値が更新され ( categoryFilter
)、モデルの状態が から に更新さng-invalid
れng-valid
ます。値を削除すると に戻りng-invalid
、再度値を選択すると に戻りng-valid
ます。言い換えれば、それは完璧に機能します。
コードに従ってこのフィドルを作成しました。私のコード(コントローラー+フォーム)はまったく同じですが、何らかの理由でアイテムを選択した後、それを消去して再度アイテムを選択すると、フィールドが残りng-invalid
ます. ここに移動して値を選択し、削除して再度選択すると、これを自分で確認できます。ng-invalid
フォーム + コントローラーは同じですが、状態が維持されていることがわかります。問題はどこですか?
desktop.controller('StartClubModalController', function ($scope,$http,$modalInstance) {
$scope.$watch('categoryFilter', function(value) {
angular.element(categoryFilter).val(value);
});
$scope.categories = [{"Category":{"id":"6","category":"Community"}},{"Category":{"id":"4","category":"Competitions"}},{"Category":{"id":"5","category":"Crossfit"}},{"Category":{"id":"2","category":"Fitness"}},{"Category":{"id":"3","category":"Sport"}},{"Category":{"id":"1","category":"Workout"}}];
$scope.categoryDropDownClickEvent = function(value) {
$scope.categoryFilter = value;
};
});