向用户显示应用程序正在等待服务器回答的视觉反馈的角度方式如何?
目前我有以下代码的工厂
app.factory('MyAppFact', ['$http', '$q',
function($http, $q) {
function _success(data, status) {
document.body.classList.remove('waitserver')
if (data.status == 'OK') {
this.resolve(data);
} else {
this.reject(data);
}
}
function _error(data, status) {
document.body.classList.remove('waitserver')
this.reject(status})
}
return {
changeLocale: function(locale){
var d = $q.defer();
document.body.classList.add('waitserver');
$http.get('/changeLocale/'+locale).success(_success.bind(d),
_error.bind(d));
return d.promise;
},
login: function(uname, passwd, keep) {
var d = $q.defer();
document.body.classList.add('waitserver');
$http.post('/login', {uname:uname, passwd:passwd, keep:keep}
).success(_success.bind(d), _error.bind(d));
return deferred.promise;
},
register: function(user) {
var d = $q.defer();
document.body.classList.add('waitserver');
$http.post('/register', {user:user}).success(_success.bind(d),
_error.bind(d));
return deferred.promise;
},
...
}
}]);
尽管此代码有效,但我在文档正文中添加了一个 css 类,而根据 angularjs 文档,我不应该在工厂方法中更改 DOM,从而违反了 MVC 的明确分离
但我看不出在这种情况下如何完成分离。