Javascript功能&设置$ scope变量

时间:2016-02-29 21:08:04

标签: javascript angularjs

我有一个从我的控制器调用我的服务的功能。

GridService.getHeaders($scope.grid);

服务低于......

    function getHeaders(grid){
    var deferred = $q.defer();
    $http.put('v1/headers', grid).success(function (data) {
        deferred.resolve(data);
    }).error(function (data, status, headers, config) {
        deferred.reject(data);
    });
    return deferred.promise;
}

我需要从中获取数据并将其设置为我的控制器中的$ scope变量...

$scope.headers = (Data from getHeader function)

然后将注入此功能。对不起,如果这一切看起来令人困惑......我最初的方式只是设置

$ scope.headers = GridService.getHeaders($ scope.grid);

但是,scope.headers总是返回空。

    function getFullHeaders(headers, highlightFilteredHeader){
        var returnArray = [];

        for(var i = 0; i < headers.length; i++ ){
            returnArray.push({
                field: headers[i].key, 
                displayName: headers[i].name,
                enablePaginationControls: true, 
                headerCellClass: highlightFilteredHeader,  
                enableFiltering: true,  
                enableSorting: true, 
                visible: true,  
                filter: { term: "", }
            });
        }

        return returnArray;
}

1 个答案:

答案 0 :(得分:1)

您的getHeaders方法会返回一个承诺。因此,如果您想对要解决的承诺做出反应,则必须使用.then(fn)

尝试:

GridService.getHeaders($scope.grid).then(function(response) {
    $scope.headers = response;
});