2014-10-03 4 views
0

Мое приложение содержит форму с кнопкой сохранения. Когда форма отправляется, вызывается функция save(), которая выполняет запрос ajax для отправки формы. Как создать директиву, чтобы изменить текст кнопки на «Загрузка ...», в то время как выполняется запрос ajax, и затем установите его на «Сохранить», когда запрос завершен?Угловая директива для изменения состояния кнопки до и после ajax

Является ли директива правильным способом приблизиться к этому, или я думаю об этом неправильно?

+0

Привет, пожалуйста! Могу ли я получить обратную связь? – coma

ответ

1

Это то, что я обычно делаю (хорошо, Джейд, но вы получите идею правильно?):

button(type="submit", ng-if="!saving") Save 
button(type="button", ng-if="saving") Saving... 

Таким образом, в вашем контроллере просто установить $scope.saving = true; перед вызовом AJAX и изменить его, наконец:

$scope.saving = true; 
$http 
... 
.finally(function() { $scope.saving = false; }); 

И если вы хотите, чтобы дать больше информации, как и показывая что-то на успех (.then) или сбою (.catch), то вы можете использовать ngSwitch тоже.

Dunno, но разработка директивы для этого кажется излишней и не столь гибкой, как это решение.

Смежные вопросы