Внедрение изменений с помощью Angularjs Custome Directive

0

У меня есть следующая директива, как я могу реализовать ng-change с ней. директива работает, но ng-change работает только тогда, когда я вручную изменяю значение текстового поля, а не когда меняю его с помощью выбора даты

 app.directive('datepicker', function () {
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function (scope, element, attrs, ngModelCtrl) {

            $(function () {


                element.persianDatepicker({
                    formatDate: "YYYY/0M/0D",
                    onSelect: function (date) {
                        scope.$apply(function () {
                            ngModelCtrl.$setViewValue(date);
                        });
                    }
                });
            });
        }
    }
}); 

и в моем HTML

 <input datepicker type="text" id="EndDate" ng-model="Filter.EndDate" class="form-control" ng-change="DateSelect()" />

DateSelect() запускается только при изменении значения текстового поля вручную

Теги:
angularjs-directive

1 ответ

1

отредактированный

ng-change является директивой только для ввода пользователем. Попробуйте вместо этого использовать $watch. Вот хорошие ответы:

Угловое изменение не срабатывает при изменении ng-модели

Когда использовать $ watch или ng-change в Angularjs

  • 0
    не работает, я должен изменить что-нибудь во входном теге?
  • 0
    element в угловом является объект Jquery. Попробуйте удалить $(function () {
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню