控制器不从工厂返回数据

时间:2014-12-29 18:34:05

标签: javascript angularjs factory

想象一下监狱里有一个单独牢房的囚犯,我希望能够通过调用API' / getparameters'来访问特定的单元格。将返回单元格编号,然后将该变量作为我的工厂的id传递。这就是我想出的。不返回任何错误,但也没有返回任何数据。我哪里错了?

var app = angular.module('myApp', ['ngResource']);

//app.factory('Params', function)
app.factory ('CellID', function($resource){
    return $resource('/my/api/cell/:id');
});

app.controller('CellCtrl', function($scope, $http, CellID){
    //use $http to getparameters, specifically, the cell number
    $http.get('/getparameters')
    .success(
        function(data) {
            var cellnumber = data.cellnum; 
            CellID.get({id:cellnumber}), function(data){
                $scope.info = data;
            }
        }
    ) 
});

1 个答案:

答案 0 :(得分:1)

你的括号在错误的地方:

CellID.get({id:cellnumber}), function(data){
    $scope.info = data;
}

这是使用cellnumber执行get,对结果不执行任何操作,然后只是将函数放入以太。

我认为你打算这样做:

CellID.get({id:cellnumber}/* <-- no parenthesis here */, function(data){
    $scope.info = data;
}); // <-- parenthesis here (and a semicolon)

你也应该能够这样做:

$scope.info = CellID.get({id:cellnumber});