Angurlarjs获得外部服务

Angurlarjs获得外部服务,url,service,controller,angularjs,external,Url,Service,Controller,Angularjs,External,我使用angularjs从我的服务中获取一些json信息时遇到问题 我已经从谷歌下载了这个例子,并对其进行了修改,以从数据库中获取我想要的信息。但它似乎不起作用,我不知道它在哪里坏了。以下是我的service.js代码: angular.module('productServices', ['ngResource']). factory('Product', function ($resource) { return $resource('http://dev.integ

我使用angularjs从我的服务中获取一些json信息时遇到问题

我已经从谷歌下载了这个例子,并对其进行了修改,以从数据库中获取我想要的信息。但它似乎不起作用,我不知道它在哪里坏了。以下是我的service.js代码:

angular.module('productServices', ['ngResource']).
    factory('Product', function ($resource) {
        return $resource('http://dev.integrator.blondgorilla.com/integratorservice/getproducts?min=0&max=15', {}, {
            query: { method: 'GET', params: { ProductID: 'products' }, isArray: true }
        });
    });
控制器是这样的

function ProductListCtrl($scope, Product) {
    $scope.products = Product;
}
而product-list.html页面如下所示:

<div class="span10">
    <!--Body content-->

    <ul class="products">
        <li ng-repeat="product in products" class="thumbnail">
            <p>{{product.ProductID}}</p>
        </li>
    </ul>
</div>
我使用和修改的代码可以从

谢谢,

基诺什


到目前为止,我发现了两个问题:

1-正如Marek所说。query() 2-我调用了不同的域,我应该使用JSONP

angular.module('productServices', ['ngResource']).
    factory('Product', function ($resource) {
        var test = $resource('http://dev.integrator.blondgorilla.com/integratorservice/getproducts', {}, {
            query: { method: 'JSONP', params: { minid: '0', maxid: '70' }, isArray: true }
        });

        return test;
    });

但我仍然看不到产品

这是第一个问题:

function ProductListCtrl($scope, Product) {
   $scope.products = Product;
}
也就是说,您将$resource分配给scope,而不是该$resource类可以检索的一些结果

试试这个:

function ProductListCtrl($scope, Product) {
   $scope.products = Product.query();
}

如果仍然有问题,那么如果您创建运行plnkr或类似的东西,我可以帮助您。

$resource object方法立即返回一个空引用(对象或数组取决于isArray)。一旦数据从服务器返回,现有的引用将被实际数据填充。因此,在这里的
ProductListCtrl
中,我们需要回调函数来处理此问题。 您可以使用以下代码更换控制器:

function ProductListCtrl($scope,Product){
    Product.query(function(data) {
        $scope.products=data;
    });
}
或者,您可以使用:

 function ProductListCtrl($scope, Product) {
       Product.query()
         .$promise.then(function(data) {
           $scope.products=data;
         });
    }

谢谢你,Marek,我已经把它改为query,但它仍然没有显示任何错误,也没有显示任何产品(我认为由于某种原因,$resource会返回空列表。
 function ProductListCtrl($scope, Product) {
       Product.query()
         .$promise.then(function(data) {
           $scope.products=data;
         });
    }