【发布时间】:2014-08-14 09:38:14
【问题描述】:
经过几次尝试,我现在可以访问外部服务工厂(被告知分散它是一个好习惯)来检索产品数据并将它们显示在我的视图中。
目前我正在将 $scope 传递给函数,这看起来有点丑陋(尤其是如果您添加更多的 CRUD 方法)。
有没有更好/更合适的方法来实现这一点?
提前致谢。
目前我使用它,如下所示(正在工作):
services.js
angular.module('services', [])
.constant("baseDataUrl", "http://localhost:55451/api/")
.factory('sportsstoreService', function ($http, baseDataUrl) {
var serviceApi = {};
serviceApi.getProducts = function ($scope) {
$http({ method: 'GET', url: baseDataUrl + 'product' }).
success(function (data, status, headers, config) {
$scope.data.products = data;
}).
error(function (data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
};
return serviceApi;
});
sportsstore.js
angular.module("sportsStore")
.controller("sportsStoreCtrl", function ($scope, sportsstoreService) {
$scope.data = {};
sportsstoreService.getProducts($scope);
});
【问题讨论】:
-
看看 Angular
$resource服务 (docs.angularjs.org/api/ngResource/service/$resource)。您可以在您的 sportService 工厂中返回$resource返回的新对象实例,然后像SportService.get()一样使用它;
标签: angularjs http service get angularjs-scope