Mat*_*erg 56
注入$ rootScope而不是$ scope,然后在$ rootScope上发出它.
myApp.factory('myFactory', ['$rootScope', function ($rootScope) {
$rootScope.$emit("myEvent", myEventParams);
}]);
Run Code Online (Sandbox Code Playgroud)
工厂无法访问当前的控制器/指令范围,因为没有.他们确实可以访问应用程序的根目录,这就是$ rootScope可用的原因.
asg*_*oth 55
您无法将控制器的范围注入服务.你能做的是:
例如
app.factory('MyService', function() {
return {
myFunction: function(scope) {
scope.$emit(...);
...
}
};
});
Run Code Online (Sandbox Code Playgroud)
例如
app.factory('MyService', ['$rootScope', function($rootScope) {
return {
myFunction: function() {
$rootScope.$emit(...);
...
}
};
}]);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35139 次 |
最近记录: |