Javascript 如何访问ui.route-oneter方法中的父作用域变量?

Javascript 如何访问ui.route-oneter方法中的父作用域变量?,javascript,angularjs,angular-ui-router,angular-ui,Javascript,Angularjs,Angular Ui Router,Angular Ui,我正在使用angularjs和AngularUI路由。在父状态控制器中,我定义了范围变量dataset 如何在子状态oneter方法中访问父状态范围 我试过这个 .state('business.remove', { url: '/remove', onEnter: [...'$scope',..., function (...$scope,...) { ... $scope.$parent.datase

我正在使用angularjs和AngularUI路由。在父状态控制器中,我定义了范围变量
dataset

如何在子状态
oneter
方法中访问父状态范围

我试过这个

.state('business.remove', {
     url: '/remove',
     onEnter: [...'$scope',...,
        function (...$scope,...) {
              ...
              $scope.$parent.dataset
但它给出了一个错误


错误:[$injector:unpr]未知提供程序:$scopeProvider根据您对变量的使用,我认为您可能可以执行各种操作

如果您想更改它,可以在父范围内使用
$scope.$emit('eventName',{someData})
$on('eventName',someFunction)
从下到上使用消息传递,并在您的函数中进行更改

但是如果您试图读取变量,您可以在父级中使用
$rootScope
定义该变量并在其他地方使用,或者在服务中定义该变量,然后调用该服务并在需要时操作数据

除此之外,您还可以进一步使用第一种方式(消息传递),使用
$broadcast
从父作用域向子作用域发送另一条消息,并在其中发送该变量,以便在子作用域中使用
$on
读取该变量。。。巴德,我不知道这是不是一个非常优化的解决方案


希望这对UI路由器有帮助,解析应该用于加载应用程序的主数据。解析可以向下传播到子状态,并有助于管理生命周期;它们在进入状态时加载,在退出状态时消失。您可以在父状态上创建解析,并将其注入父视图或子视图(控制器)和/或oneter/onExit挂钩

.state('business', {
 url: '/remove',
 resolve: { 
     dataset: function(someService) { 
        someService.fetchDataset();
     }
 },
 controller: function(dataset, $scope) {
    // do something with dataset
 }

.state('business.remove', {
 url: '/remove',
 onEnter: function (dataset) {
     // do something else with dataset

是否要使用父状态范围变量?是的,我要使用父范围变量谢谢。我尽量避免使用rootscope。目前正在按照您对事件的描述进行解决。我想更改父范围中的对象。所以它很有效。你有一个有效的例子吗?我试过了,但在
onEnter
上的
未知提供程序
中失败了。为了将来参考,我在这里找到了一个: