我可以在personController.js中的CSV文件中创建Person对象列表。我想对这个对象列表做一些基本的验证,然后向用户显示哪些人是有效的,哪些是无效的(可能在网格中),然后再将它们提交给服务器进行额外的验证。
目前,我这样做:
app.controller('PersonController', ['$scope', '$log', '$modal', 'person', 'personValidation', 'refData', function ($scope, $log, $modal, personSvc, personValidationSvc, refDataSvc) {
$scope.validateImportedPersons = function (data) {
// data is a list of Persons
$q.all([
refDataSvc.getAreaCodes(),
refDataSvc.getZipCodes()
// possibly more reference data to retrieve
]).then(function(refData) {
personSvc.validatePerson(refData, data);
},
function(error) {
// TODO: throw some error
});
};
}]);
有没有比做q.all更好的方法?我可以将其移动到UI-Router的解析部分,但是如何构建refData服务以便我可以像常规列表而不是服务一样检索数据?我是否有两组函数,一组用于承诺,它将在服务中填充变量并返回一个promise,另一组用于返回变量?