我只是想知道在Angular应用程序中从服务器查看模型数据的最佳实践是什么?
例如,在我的控制器我从服务器(自定义ngResource
服务)获取模型,然后我需要在我的应用程序的客户端创建一些不同的模型:
customApiService.query({ url: 'items' }, function (res) {
// made it like this and do everything in partials with "ng-repeat"?!
$scope.items = res;
// but i need to model server data on client...
angular.forEach(res, function (key, i) {
$scope.viewModel = {
description: key.anotherNameField // e.g. different third-party services return description under different names
};
});
});
我们所做的是这样的情况是不使用angular resource
直接在控制器。我们创建自己的服务
appRoot.factory('modelService', ['$resource', '$q', function ($resource, $q) {
function ModelClass() {
this.PropertyOne=null;
this.PropertyTwo=null;
}
var serviceObj= {
getData: function () {
$resource('url').query(function(data) {
var modelList=[];
//Do a foreach on each record in 'data' and create 'ModelClass' object and map properties
return modelList;
});
}
}
return serviceObj;
}]);
这允许我们更多地控制暴露给控制器和视图的内容。这里模型的所有权属于服务。
由于相同的服务可以被注入到任何地方,所以我们不必一次又一次地自定义映射。