我的應用程序中有一個按鈕,用於打開Modal。此模式在UI路由狀態中配置爲使用新網址運行。AngularJS:UI路由器模式 - 父範圍
在Modals Controller中,我需要訪問父$ scope。在父$範圍中,我有一個數組,需要在名爲todolist.add的子狀態中訪問。
爲什麼我需要訪問父$ scope?因爲我想在不調用服務器的情況下操作父$ scope數據。
訪問UI路由器中父範圍的最佳方式是什麼?
// routes
$stateProvider
.state('todolist', {
url: '/todo-list',
views: {
'@': {
...,
controller: 'ListsController'
}
}
})
.state('todolist.add', {
url: '/list/add',
onEnter: ['$state', '$uibModal', function ($state, $uibModal) {
$uibModal.open({
...,
controller: 'FormListModalController' // <- in this controller I need to access the $scope from the parent
}).result.finally(function() {
...
});
}]
})...
。
.controller('ListsController', function ($scope, ...) {
$scope.lists = []; // there are data in this $scope array
});
。
.controller('FormListModalController', function ($scope, ...) {
$scope.$parent.todolist.lists; // <- in this Modal's Ctrl I need to access the parent $scope (ListsController)
});
https://toddmotto.com/all-關於angulars發射廣播發布訂閱 我認爲最好的方法之一是廣播一個事件,並在父範圍內收聽。 另外考慮用服務操作數據,然後只是廣播事件,讓控制器從服務中獲取數據 – Alburkerk