从工厂angularjs访问angularjs控制器

时间:2014-11-12 07:46:21

标签: angularjs angularjs-controller angularjs-factory

我们构建了一个控制器,它可以保存我们app的所有$资源,以便从控制器轻松访问:

app.controller('ResourcesCtrl',  ['$scope', '$resource', '$controller', function ($scope, $resource, $controller) {

$scope.Product = $resource(resources_url_global + '/products/:id.json', { id: '@id' }, default_actions);

var default_actions = {
    'get': {
        method: 'GET'
    },
    'create': {
        method: 'POST'
    },
    'save': {
        method: 'POST'
    },
    'update': {
        method: 'PUT'
    },
    'update_all': {
        method: 'PUT'
    },
    'query': {
        method: 'GET',
        isArray: true
    },
    'remove': {
        method: 'DELETE'
    },
    'delete': {
        method: 'DELETE'
    }
};}]);

以及来自其他控制器的访问示例:

app.controller('ProductsManagementCtrl',  ['$scope', '$controller', '$resource', 
    function ($scope, $controller, $resource) {
$controller('ResourcesCtrl', {$scope: $scope}); // inherit Parent Controller }]);

问题是我想从工厂使用ResourceCtrl,但我不知道如何从工厂调用它。

1 个答案:

答案 0 :(得分:0)

您应该将其构建为service,而不是controller

您可以服务注入其他services和其他controllers

如果您真的需要resource controller,那么只需注入resource service并创建包装