директива angularjs кнопки не изменяет состояние - PullRequest
0 голосов
/ 25 октября 2018

Моя кнопка переключения директивы не принимает атрибут ng-change, когда я внедряю его в виджет.

Директива:

// @ngInject
exports.abToggleButton = function($parse) {

    function templateFn() {
        return '<div class="ab-component-toggle-button">' +
            '<label>' +
            '<input type="checkbox" ng-model="ngModel" ng-change="scope.changed">' +
            '<strong></strong>' +
            '</label>' +
            '</div>';
    }

    function linkFn(scope, element, attrs) {
        scope.changed = function () {
            scope.$emit('ab-component-toggle-button.changed', { id: scope.id, enabled: scope.ngModel});
        };
    }

    return {
        restrict: 'E',
        scope: {
            id: '=',
            ngModel: '=',
            change: '&'
        },
        link: linkFn,
        template: templateFn
    };
};

в теге html:

<ab-toggle-button class="col-lg-3" ng-model="limit.selected" ng-change="ctrl.checkChangesState"></ab-toggle-button>

в моей функции контроллера:

ctrl.checkChangesState = function () {
        console.log('test')
    };

, поэтому, когда я меняю состояние переключателя.нг-изменение не работает.В чем может быть проблема?Спасибо всем.

1 Ответ

0 голосов
/ 25 октября 2018

Просто предположение, но, возможно, ваши директивные входные данные:

изменить: '&',

должно стать

нг-изменить: '='

, поскольку вы используете директиву не с помощью change =, а с помощью ng-change?

...