У меня есть указание служить формой кредитной карты. Эта форма может иметь много разных кнопок отправки. Во время покупки, которая является асинхронной, мне нужно убедиться, что кнопки отключены. Поэтому для этого я использую простой шаблон наблюдателя. Проблема, с которой я сталкиваюсь, заключается в том, что когда пользователь нажимает кнопку, шаблон наблюдателя работает нормально, атрибут изолированной области, управляющий ng-disable, устанавливается правильно, однако отключенное не применяется к кнопкам. Я думаю, это может быть приоритетной вещью?
Итак, вот наблюдатель. Тема довольно приземленная. Просто проверяет форму и имеет список ее наблюдателей. Вот где у меня проблемы.
.directive('submitCardButton', ['$q', function ($q) {
return {
restrict: 'E',
require: '^createCard',
scope: {
successBack: '&',
buttonVal: '@'
},
template: "<button class='button button-pink full-width small-top' ng-class=\"{disabled: submitting}\" ng-click='getCC()' ng-disabled=\"submitting\">{+ submitting +} {+ buttonVal +}</button>",
link: function (scope, elem, attr, card) {
card.registerButton(scope);
scope.submitting = false;
function getCC () {
card.disableButtons();
card.getCC().then(function (response) {
$q.when(scope.successBack({response:response}))
.finally(card.enableButtons);
}, function () {
card.enableButtons();
});
}
scope.disable = function () {
scope.submitting = true;
console.log(scope.submitting);
};
scope.enable = function () {
scope.submitting = false;
console.log(scope.submitting);
};
scope.getCC = getCC;
} // end link
};// end return
}])// end directive
Когда я отлаживаю внутри getCC, после того, как я вызываю disableButtons, для отправки устанавливается значение true. Однако отправка внутри шаблона по-прежнему ложна и поэтому не отключена. Любая помощь будет очень признательна.
Я создал plunkr, демонстрирующий проблему, с которой я столкнулся. Я использую простое имя пользователя, фамилию, чтобы показать проблему. Он отлично работает, если вы отправляете его правильно. Однако, если вы просто отправляете без ввода каких-либо данных, вы можете видеть, что флаг отправки в директиве кнопки установлен на True, но отключено не установлено должным образом. http://plnkr.co/edit/8KTUCNMPBRAFVl1N4nXp?p=preview
card.disableButtons()
- что он делает? Это кажется важным для вопроса, но код для этого отсутствует. - person New Dev   schedule 19.12.2014