$rootScope.$broadcast 在 AngularJS 中的使用
$rootScope.$broadcast usage in AngularJS
我正在使用一个应用程序,在 service.js 中的服务末尾有以下行。
$rootScope.$broadcast('rootScope:Object')
这里的对象是API服务的输出。如果我现在想在我实际的 app.js 文件中使用这个对象,我该如何使用它?上面一行具体说明了什么以及如何在后面的页面中使用它?
感谢任何帮助。
编辑:
根据给出的答案尝试了以下方法:
在服务页面中:
this.getobject=function(){
//http api Function call with result as response.data = resp
$rootScope.$broadcast('rootScope:resp',resp);
}
在子范围页面中:
resp=[];
$rootScope.$on('rootScope:resp',function(resp) {
$scope.resp=resp;
console.log(resp);
});
$scope.$on('rootScope:resp', function(e, params){
console.log(params); // respobject
});
不幸的是,两者都没有在控制台上打印任何内容。该方法有任何问题吗?
此行表示 $rootScope(最高范围级别)将向所有子级(您应用的范围)广播一个名为 'rootScope:Object' 的事件。
根据 https://docs.angularjs.org/api/ng/type/$rootScope.Scope,您可以向 $broadcast()
函数添加参数,在您的情况下,传递您的对象。
您将拥有:
$rootScope.$broadcast('rootScope:Object', myObject)
在您的子范围内,您可以通过以下方式轻松检索:
$scope.$on('rootScope:Object', function(e, params){
console.log(params); // myObject
});
希望对您有所帮助。
编辑:这是一个 codepen 显示使用 $broadcast/$on
从 API 加载和显示数据
不确定我是否理解您的问题,但 broadcast 只是将事件向下分发到所有子范围。
所以,在您的服务中,您可能希望有类似的东西:
$rootScope.$broadcast('myEventNameHere', actualJavascriptObjectHere);
而在你想听这个活动的地方,你会有这样的东西:
$scope.$on('myEventNameHere', function(actualJavascriptObjectHere) {
console.log(actualJavascriptObjectHere);
});
希望对您有所帮助。
我正在使用一个应用程序,在 service.js 中的服务末尾有以下行。
$rootScope.$broadcast('rootScope:Object')
这里的对象是API服务的输出。如果我现在想在我实际的 app.js 文件中使用这个对象,我该如何使用它?上面一行具体说明了什么以及如何在后面的页面中使用它?
感谢任何帮助。
编辑:
根据给出的答案尝试了以下方法:
在服务页面中:
this.getobject=function(){
//http api Function call with result as response.data = resp
$rootScope.$broadcast('rootScope:resp',resp);
}
在子范围页面中:
resp=[];
$rootScope.$on('rootScope:resp',function(resp) {
$scope.resp=resp;
console.log(resp);
});
$scope.$on('rootScope:resp', function(e, params){
console.log(params); // respobject
});
不幸的是,两者都没有在控制台上打印任何内容。该方法有任何问题吗?
此行表示 $rootScope(最高范围级别)将向所有子级(您应用的范围)广播一个名为 'rootScope:Object' 的事件。
根据 https://docs.angularjs.org/api/ng/type/$rootScope.Scope,您可以向 $broadcast()
函数添加参数,在您的情况下,传递您的对象。
您将拥有:
$rootScope.$broadcast('rootScope:Object', myObject)
在您的子范围内,您可以通过以下方式轻松检索:
$scope.$on('rootScope:Object', function(e, params){
console.log(params); // myObject
});
希望对您有所帮助。
编辑:这是一个 codepen 显示使用 $broadcast/$on
从 API 加载和显示数据不确定我是否理解您的问题,但 broadcast 只是将事件向下分发到所有子范围。
所以,在您的服务中,您可能希望有类似的东西:
$rootScope.$broadcast('myEventNameHere', actualJavascriptObjectHere);
而在你想听这个活动的地方,你会有这样的东西:
$scope.$on('myEventNameHere', function(actualJavascriptObjectHere) {
console.log(actualJavascriptObjectHere);
});
希望对您有所帮助。