gpt4 book ai didi

javascript - 在 angular-ui-router 中将信息从子状态传递到父状态

转载 作者:数据小太阳 更新时间:2023-10-29 04:34:54 25 4
gpt4 key购买 nike

我正在构建一个带有 ui-router 的 Angular 应用程序,其中有一个父 View 和一个 subview 。

routerApp.config(function($stateProvider, $urlRouterProvider) {

$urlRouterProvider.otherwise('/home');

$stateProvider
.state('home', {
url: '/home',
templateUrl: '/views/home/home.html',
controller: 'HomeController'
})
.state('new-assignment', {
url: '/new-assignment',
templateUrl: 'new-assignment.html',
controller: 'AssignmentController'
})
.state('new-assignment.new-client', {
url: '/new-client',
templateUrl: 'new-client.html',
controller: 'ClientController'
})
;

});

subview (除其他外)用于创建新客户端。因此,通过单击主视图中的“创建新客户端”。状态更改为“new-assignment.new-client”,并显示侧 View 。

创建客户端后,我想转换回父 View “new-assignment”并传递有关刚刚创建的客户端的信息。

父 View 仍然可以有自己形式的数据(用于创建分配),自然不应该被触及。

我可以通过“$stateChangeSuccess”事件检测到变化:

routerApp.controller('AssignmentController', function($scope, Assignment, Client, $log) {
$scope.clients = Client.clients;
$scope.$on('$stateChangeSuccess', function (e, toState, toParams, fromState, fromParams){
$log.log(fromState.name + ' -> ' + toState.name);
$log.log('toParams ');
$log.log(toParams);
$log.log('fromParams ');
$log.log(fromParams);
});
});

我尝试过传递信息

$state.go('^', data);

但没有成功...

但是我不明白如何将数据传递给父 View 。有什么想法吗?

最佳答案

subview 范围继承自父 View 范围。所以只需在 AssignmentController 中定义 $scope.clients[] 数组。然后将新客户端添加到 ClientController 中的该数组。

Take a look at this Plunker查看嵌套 View 范围如何访问其父 View 范围。

关于javascript - 在 angular-ui-router 中将信息从子状态传递到父状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24184289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com