我有一个适用于范围变量和对象的范围函数。
$scope.myfunction = function () {
$scope.a = '';
if (($scope.c == 'a')) {
$scope.a = 'a';
}
}
我想在使用工厂的控制器之间使用此功能,但我在$scope
上没有定义错误。如何从工厂访问范围变量?
是否还有其他方法可以在控制器之间共享范围功能?
更新
感谢您的建议,我设法解决了一些问题。 现在我必须了解如何解决这个问题:
我的工厂里只有一种方法。根据变量,它可以返回值,某些值或数组。 我怎么能这样做?将这些值推送到临时数组并返回它?
答案 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;
}
然后你可以在多个控制器中使用该方法。