AngularJS从$ scope中的$ resource访问返回的数据

时间:2015-11-24 13:21:01

标签: angularjs json

我有一个API设置,它将JSON数据提供给$ resource。

在我的控制器中,我正在执行以下操作来查询特定行:

$scope.company = Companies.query({id: companyId});

但是,如果在我看来'然后我做了:

{{ company.company_name }}

它没有显示任何内容......如何将返回的JSON数据分配给'公司'范围?

2 个答案:

答案 0 :(得分:1)

这就是我使用$ resource的方式

在Companyservice.js

this.queryItem = function (){

    var deferred = $q.defer();
    setTimeout(function() {
        // deferred.notify('Saving data..');
        var items = Company.query({},function() {
            deferred.resolve(items.d.results);
        }, function(error){
            deferred.reject(error);
        });
    }, 1000);
    return deferred.promise;
};

并在控制器中

var promise = CompanyService.queryItem();
    promise.then(function(response){
        // for each item in response, push item to array
        angular.forEach(response, function(item){
            $scope.companys.push(item);
        });

    }, function(reason){
        console.log(reason);
});

您应该设置$scope.company = response;

,而不是将返回的项目推送到数组中

希望这有帮助!

答案 1 :(得分:0)

首先,您是否尝试过console.log Companies.query({id: companyId});

验证数据是否存在?如果是这样,您可以获取数据异步。如果是这样,除非它被包装在$ http中,你需要告诉angular模型已经更新,以便视图可以刷新,只需这样做:

$scope.$apply();