Angular Factory返回null但在控制台

时间:2016-06-08 07:38:30

标签: angularjs

我有一个工厂服务,这里有一个方法getCount。当我在控制器中调用此方法时,它返回null但我已在工厂服务中通过在控制台中打印数据进行测试。它在控制台中显示数据但不向控制器返回任何值。

obj.getCount = function(table, field) {
        var query = "select count(" + field + ") as total from " + table + "";
        $db.query(query).then(function(results) {
            console.log(results.rows.item(0).total); // here show data in console
            if (results.rows.item(0).total) {
                return results.rows.item(0).total;
            } else {
                return 0;
            }

        });
    }

在我的控制器中

$scope.totalAccount=DBFactory.getCount('accounts','id');

1 个答案:

答案 0 :(得分:2)

像这样返回$db.query.then

obj.getCount = function(table, field) {
    var query = "select count(" + field + ") as total from " + table + "";
    return $db.query(query).then(function(results) {
        if (results.rows.item(0).total) {
            return results.rows.item(0).total;
        } else {
            return 0;
        }
    });
}

然后将您的控制器代码更改为:

DBFactory.getCount('accounts','id').then(function(data) {
    $scope.totalAccount = data;
});