Я использую этот элемент управления: http://blueimp.github.io/jQuery-File-Upload/angularjs.html, чтобы выполнить загрузку файла в угловом режиме, как только файл будет загружен на мой сервер. Я возвращаю URL-адрес и хочу отобразить его клиенту на успешный обратный вызов. Используемый плагин представляет собой обычную загрузку файла jquery, но есть угловая директивная оболочка, которую я использую.
Вот как я определяю обратный вызов:
$scope.options = {
url: '/api/Client/',
type: 'PUT',
done: function (event, data) {
var scope = angular.element(this).scope();
scope.test = "doesn't work";
scope.$apply(function() {
scope.test = "this doesn't work either";
});
}
};
файл загружает штраф, и сделал функция вызывается, однако я не могу обновить представление. Сначала я попробовал просто изменить область, затем понял, что мне потребуется функция $ apply(), но это тоже не работает.
Я также попытался
$scope.options = {
url: '/api/Client/',
type: 'PUT',
done: function (event, data) {
$scope.test = "doesn't work";
$scope.$apply(function() {
$scope.test = "this doesn't work either";
});
}
};
и что также не работает. Я не уверен, почему он не обновляет мое представление, и поскольку выполненный вызов - это просто событие успеха ajax, я не вижу, как этот конкретный плагин может вызывать любые проблемы с $ scope. $ Apply. Я использую AngularJs 1.1.5, но я также пробовал 1.0.7 и получаю ту же проблему.
Когда вы вызываете заявку, вы получаете сообщение об ошибке, что apply/digest уже находится в progess? –
Нет, никаких ошибок. Он просто ничего не делает. Если я назову его несколько раз и посмотрю на значение $ scope.test, я вижу значение, которое было установлено ранее. Вид просто не обновляется с этим значением –
Вторая версия действительно выглядит так, как будто она должна работать для меня, если вызываемая функция вызвана. –