无法使用工厂

时间:2018-01-26 09:18:29

标签: javascript angularjs

我写了一个保存数据的工厂,我正在使用两个控制器。我已经将一个请求传递给工厂以获取数据。然后我试图通过另一个页面上的另一个控制器显示该数据。我成功地在一个控制器中检索数据。但是,当我试图通过另一个控制器显示另一个html文件中的数据时,没有任何东西出现。我不确定出了什么问题。
这是获取数据的工厂函数

productDetails.getProductDetails = function(sessionId,product){
        console.log("Getting the product details")
        var promise = $http({method : "POST",
            url : "some_url",
            data : {"some_data"}
        })
        promise.then(function(response){
            productDetails.details = response
            console.log(productDetails.details)
        }, function(err){
            console.log("Couldn't get the product details "+err)
        })
    }

这就是我调用工厂函数来通过一个控制器获取数据的方法

$scope.displayProductDetails = function(product){
        var promiseProductDetails = productService.getProductDetails($scope.userSession,product);
        window.location = "product-details.html"
    }

然后在第二个控制器中我试图控制相同的数据。但没有任何事情发生。

任何帮助都将受到高度赞赏

此致

1 个答案:

答案 0 :(得分:0)

您需要从 factory

返回值
productDetails.getProductDetails = function(sessionId,product){
        console.log("Getting the product details")
        var promise = $http({method : "POST",
            url : "some_url",
            data : {"some_data"}
        })
        return promise.then(function(response){ // returning the promise
            productDetails.details = response
            return response // returning the resolved value
        }, function(err){
            return err
        })
    }