Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 控制器方法没有';t返回值以扩展控制器_Angularjs_Ajax_Controllers - Fatal编程技术网

Angularjs 控制器方法没有';t返回值以扩展控制器

Angularjs 控制器方法没有';t返回值以扩展控制器,angularjs,ajax,controllers,Angularjs,Ajax,Controllers,我有一个扩展另一个控制器的控制器: angular.module('Gestios').controller('EmpresasControllerList', function($scope, $controller ) { angular.extend(this, $controller('AppController', { $scope: $scope })); $scope.App = $scope.runApp('empresas', true

我有一个扩展另一个控制器的控制器:

angular.module('Gestios').controller('EmpresasControllerList', function($scope, $controller ) {
    angular.extend(this, $controller('AppController', {
        $scope: $scope
    }));

    $scope.App = $scope.runApp('empresas', true);

    console.log($scope.App);
});
app.controller('AppController', function ($scope, $controller, AppFactory) {
    $scope.runApp = function (AppPermalink, GetResults, Filters, Callback) {
        if(!angular.isDefined(Filters)){Filters = $scope.Filters;}

        var App = {
            Load : {
                busy: false,
                page: 1
            },
            Info: {},
            Results: []
        };

        AppFactory.Applications(AppPermalink).then(function (data) {
            App.Info = data.data[0];

            if(GetResults){
                AppFactory.Items(AppPermalink, Filters).then(function (data) {
                    App.Results = {
                        list: data.data.data,
                        count: data.data.total
                    };

                    if(typeof(Callback) == "function"){Callback(true, {results: App.Results.list, count: App.Results.count});}

                    return App;
                },function () {
                    App.Results = {
                        list: [],
                        count: 0
                    };

                    if(typeof(Callback) == "function"){Callback(false, {results: App.Results.list, count: App.Results.count});}

                    return App;
                });
            }
        },function (error) {
            swal("Algo ha ido mal", error.error, "error");
        });
    };
});




});
angular.module('Gestios').controller('EmpresasControllerList', function($scope, $controller ) {
    angular.extend(this, $controller('AppController', {
        $scope: $scope
    }));

    $scope.runApp('empresas', true, false, function(Result, App){
        if(Result){
            $scope.App = App;
        }
    });
});
$scope.runApp = function (AppPermalink, GetResults, Filters, Callback) {
    if(!angular.isDefined(Filters)){Filters = $scope.Filters;}

    var App = {
        Load : {
            busy: false,
            page: 1
        },
        Info: {},
        Results: []
    };

    AppFactory.Applications(AppPermalink).then(function (data) {
        App.Info = data.data[0];

        if(GetResults){
            AppFactory.Items(AppPermalink, Filters).then(function (data) {
                App.Results = {
                    list: data.data.data,
                    count: data.data.total
                };

                if(typeof(Callback) == "function"){Callback(true, App);}
            },function () {
                App.Results = {
                    list: [],
                    count: 0
                };

                if(typeof(Callback) == "function"){Callback(false, App);}
            });
        }
    },function (error) {
        swal("Algo ha ido mal", error.error, "error");
    });
};
我需要将第二个控制器的方法的结果接收到第一个控制器的变量

第一控制器:

angular.module('Gestios').controller('EmpresasControllerList', function($scope, $controller ) {
    angular.extend(this, $controller('AppController', {
        $scope: $scope
    }));

    $scope.App = $scope.runApp('empresas', true);

    console.log($scope.App);
});
app.controller('AppController', function ($scope, $controller, AppFactory) {
    $scope.runApp = function (AppPermalink, GetResults, Filters, Callback) {
        if(!angular.isDefined(Filters)){Filters = $scope.Filters;}

        var App = {
            Load : {
                busy: false,
                page: 1
            },
            Info: {},
            Results: []
        };

        AppFactory.Applications(AppPermalink).then(function (data) {
            App.Info = data.data[0];

            if(GetResults){
                AppFactory.Items(AppPermalink, Filters).then(function (data) {
                    App.Results = {
                        list: data.data.data,
                        count: data.data.total
                    };

                    if(typeof(Callback) == "function"){Callback(true, {results: App.Results.list, count: App.Results.count});}

                    return App;
                },function () {
                    App.Results = {
                        list: [],
                        count: 0
                    };

                    if(typeof(Callback) == "function"){Callback(false, {results: App.Results.list, count: App.Results.count});}

                    return App;
                });
            }
        },function (error) {
            swal("Algo ha ido mal", error.error, "error");
        });
    };
});




});
angular.module('Gestios').controller('EmpresasControllerList', function($scope, $controller ) {
    angular.extend(this, $controller('AppController', {
        $scope: $scope
    }));

    $scope.runApp('empresas', true, false, function(Result, App){
        if(Result){
            $scope.App = App;
        }
    });
});
$scope.runApp = function (AppPermalink, GetResults, Filters, Callback) {
    if(!angular.isDefined(Filters)){Filters = $scope.Filters;}

    var App = {
        Load : {
            busy: false,
            page: 1
        },
        Info: {},
        Results: []
    };

    AppFactory.Applications(AppPermalink).then(function (data) {
        App.Info = data.data[0];

        if(GetResults){
            AppFactory.Items(AppPermalink, Filters).then(function (data) {
                App.Results = {
                    list: data.data.data,
                    count: data.data.total
                };

                if(typeof(Callback) == "function"){Callback(true, App);}
            },function () {
                App.Results = {
                    list: [],
                    count: 0
                };

                if(typeof(Callback) == "function"){Callback(false, App);}
            });
        }
    },function (error) {
        swal("Algo ha ido mal", error.error, "error");
    });
};
第二控制器:

angular.module('Gestios').controller('EmpresasControllerList', function($scope, $controller ) {
    angular.extend(this, $controller('AppController', {
        $scope: $scope
    }));

    $scope.App = $scope.runApp('empresas', true);

    console.log($scope.App);
});
app.controller('AppController', function ($scope, $controller, AppFactory) {
    $scope.runApp = function (AppPermalink, GetResults, Filters, Callback) {
        if(!angular.isDefined(Filters)){Filters = $scope.Filters;}

        var App = {
            Load : {
                busy: false,
                page: 1
            },
            Info: {},
            Results: []
        };

        AppFactory.Applications(AppPermalink).then(function (data) {
            App.Info = data.data[0];

            if(GetResults){
                AppFactory.Items(AppPermalink, Filters).then(function (data) {
                    App.Results = {
                        list: data.data.data,
                        count: data.data.total
                    };

                    if(typeof(Callback) == "function"){Callback(true, {results: App.Results.list, count: App.Results.count});}

                    return App;
                },function () {
                    App.Results = {
                        list: [],
                        count: 0
                    };

                    if(typeof(Callback) == "function"){Callback(false, {results: App.Results.list, count: App.Results.count});}

                    return App;
                });
            }
        },function (error) {
            swal("Algo ha ido mal", error.error, "error");
        });
    };
});




});
angular.module('Gestios').controller('EmpresasControllerList', function($scope, $controller ) {
    angular.extend(this, $controller('AppController', {
        $scope: $scope
    }));

    $scope.runApp('empresas', true, false, function(Result, App){
        if(Result){
            $scope.App = App;
        }
    });
});
$scope.runApp = function (AppPermalink, GetResults, Filters, Callback) {
    if(!angular.isDefined(Filters)){Filters = $scope.Filters;}

    var App = {
        Load : {
            busy: false,
            page: 1
        },
        Info: {},
        Results: []
    };

    AppFactory.Applications(AppPermalink).then(function (data) {
        App.Info = data.data[0];

        if(GetResults){
            AppFactory.Items(AppPermalink, Filters).then(function (data) {
                App.Results = {
                    list: data.data.data,
                    count: data.data.total
                };

                if(typeof(Callback) == "function"){Callback(true, App);}
            },function () {
                App.Results = {
                    list: [],
                    count: 0
                };

                if(typeof(Callback) == "function"){Callback(false, App);}
            });
        }
    },function (error) {
        swal("Algo ha ido mal", error.error, "error");
    });
};
http调用接收数据
?问题可能是由异步http调用引起的?

使用我的回调解决了此问题:p

第一控制器:

angular.module('Gestios').controller('EmpresasControllerList', function($scope, $controller ) {
    angular.extend(this, $controller('AppController', {
        $scope: $scope
    }));

    $scope.App = $scope.runApp('empresas', true);

    console.log($scope.App);
});
app.controller('AppController', function ($scope, $controller, AppFactory) {
    $scope.runApp = function (AppPermalink, GetResults, Filters, Callback) {
        if(!angular.isDefined(Filters)){Filters = $scope.Filters;}

        var App = {
            Load : {
                busy: false,
                page: 1
            },
            Info: {},
            Results: []
        };

        AppFactory.Applications(AppPermalink).then(function (data) {
            App.Info = data.data[0];

            if(GetResults){
                AppFactory.Items(AppPermalink, Filters).then(function (data) {
                    App.Results = {
                        list: data.data.data,
                        count: data.data.total
                    };

                    if(typeof(Callback) == "function"){Callback(true, {results: App.Results.list, count: App.Results.count});}

                    return App;
                },function () {
                    App.Results = {
                        list: [],
                        count: 0
                    };

                    if(typeof(Callback) == "function"){Callback(false, {results: App.Results.list, count: App.Results.count});}

                    return App;
                });
            }
        },function (error) {
            swal("Algo ha ido mal", error.error, "error");
        });
    };
});




});
angular.module('Gestios').controller('EmpresasControllerList', function($scope, $controller ) {
    angular.extend(this, $controller('AppController', {
        $scope: $scope
    }));

    $scope.runApp('empresas', true, false, function(Result, App){
        if(Result){
            $scope.App = App;
        }
    });
});
$scope.runApp = function (AppPermalink, GetResults, Filters, Callback) {
    if(!angular.isDefined(Filters)){Filters = $scope.Filters;}

    var App = {
        Load : {
            busy: false,
            page: 1
        },
        Info: {},
        Results: []
    };

    AppFactory.Applications(AppPermalink).then(function (data) {
        App.Info = data.data[0];

        if(GetResults){
            AppFactory.Items(AppPermalink, Filters).then(function (data) {
                App.Results = {
                    list: data.data.data,
                    count: data.data.total
                };

                if(typeof(Callback) == "function"){Callback(true, App);}
            },function () {
                App.Results = {
                    list: [],
                    count: 0
                };

                if(typeof(Callback) == "function"){Callback(false, App);}
            });
        }
    },function (error) {
        swal("Algo ha ido mal", error.error, "error");
    });
};
第二个控制器(AppController)的方法:


有些人认为围绕基于承诺的API创建基于回调的包装是反模式。看见