[英]how to emit events from a factory
如何從工廠或服務中發出事件。 我無法將$ scope注入工廠,因此無法發出事件。
我收到以下錯誤 - Unknown provider: $scopeProvider <- $scope
謝謝,穆爾塔扎
注入$ rootScope而不是$ scope,然后在$ 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(...);
...
}
};
}]);
在你的工廠注入$ rootScope作為 -
myApp.factory('myFactory',function($rootScope){
return({
// use $rootScope as below to pass myEventParams to all below in hierarchy
$rootScope.$broadcast("myEvent",myEventParams);
})
}]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.