在控制器之间共享范围功能

时间:2015-06-15 15:26:31

标签: angularjs

我有一个适用于范围变量和对象的范围函数。

$scope.myfunction = function () {
$scope.a = '';
if (($scope.c == 'a')) {
    $scope.a = 'a';
}

}

我想在使用工厂的控制器之间使用此功能,但我在$scope上没有定义错误。如何从工厂访问范围变量? 是否还有其他方法可以在控制器之间共享范围功能?

更新

感谢您的建议,我设法解决了一些问题。 现在我必须了解如何解决这个问题:

我的工厂里只有一种方法。根据变量,它可以返回值,某些值或数组。 我怎么能这样做?将这些值推送到临时数组并返回它?

1 个答案:

答案 0 :(得分:2)

你不在工厂使用范围。

所以你有你的工厂

    angular.module('myApp').factory('myFactory', myFactory)

    function myFactory() {
        return {
            sharedMethod: function(cb) {
                ...Do Something

                if(cb) { cb(); }
            }
        }
    }

然后在你的控制器中。

   angular.module('myApp').controller('myController', myController)

    function myController($scope, myFactory) {
        $scope.bindableMethod = myFactory.sharedMethod;
    }

然后你可以在多个控制器中使用该方法。