传递给工厂的控制器资源未定义(AngularJs)

时间:2016-02-18 11:47:13

标签: angularjs

我有一个问题从控制器传递给我的工厂。 这是我的控制器,这是我为整个应用程序工作的方式,但突然这个控制器有问题。

controllers.userCtrl = function($scope, $routeParams, userFactory, productsFactory){
    var user = $routeParams.param1;
    userFactory.getUserByUserName(user).then(function(data){
        $scope.user = data[0];
        $scope.userName = data[0].user_name;
        console.log($scope.userName);  //line 428
    })
    productsFactory.getOtherUserProducts(1).then(function(data){
        console.log($scope.userName); //line 431
        $scope.products = data;
    })
}

我的工厂

factory.getOtherUserProducts = function(userNameData){
    console.log(userNameData); //line 102
    return $http.get($location.protocol() + '://' + $location.host() + '/server/api/products/getOtherUserProducts/'+userNameData);
}

控制台输出是:

factory.js:102     undefined
controllers.js:428 treutel.lesley
controllers.js:431 treutel.lesley

为什么论点没有传递给工厂。这是我整个时间构建应用程序的方式..

如果您需要任何其他信息,请告诉我,我会提供。

1 个答案:

答案 0 :(得分:0)

稍微改变控制器就可以了。

controllers.userCtrl = function($scope, $routeParams, userFactory, productsFactory){
    var user = $routeParams.param1;
    userFactory.getUserByUserName(user).then(function(data){
        $scope.user = data[0];
        productsFactory.getOtherUserProducts(data[0].user_name).then(function(data){
            $scope.products = data;
        })
    })
}