How can I emit events from a factory or service. I am unable to inject $scope into the factory, thus unable to emit events.
I get the following error - Unknown provider: $scopeProvider <- $scope
Thanks, Murtaza
How can I emit events from a factory or service. I am unable to inject $scope into the factory, thus unable to emit events.
I get the following error - Unknown provider: $scopeProvider <- $scope
Thanks, Murtaza
$scope の代わりに $rootScope を注入し、$rootScope で発行します。
myApp.factory('myFactory', ['$rootScope', function ($rootScope) {
$rootScope.$emit("myEvent", myEventParams);
}]);
ファクトリは、現在のコントローラー/ディレクティブ スコープにアクセスできません。ただし、アプリケーションのルートにはアクセスできるため、$rootScope を使用できます。
コントローラーのスコープをサービスに挿入することはできません。あなたができることは次のとおりです。
例えば
app.factory('MyService', function() {
return {
myFunction: function(scope) {
scope.$emit(...);
...
}
};
});
例えば
app.factory('MyService', ['$rootScope', function($rootScope) {
return {
myFunction: function() {
$rootScope.$emit(...);
...
}
};
}]);