[英]ui.router nested States, nested Views: $rootScope.$on $rootScope.$broadcast doesnt connect
我使用$ rootScope從嵌套狀態和視圖向控制器發送數據
它在'items'和rootSelector之間起作用,在'detail'和rootSelector之間不起作用
某些東西阻止了我的rootScope事件。
var listState = {
name: 'playlist.list',
parent: 'playlist',
url: '/list?',
resolve: {
playlistsDb: resolvePlaylistsFromDb,
},
views: {
// target the unnamed view in the playlist state
'@playlist': {
templateUrl: 'app/playlists/list/list.html',
controller: 'PlaylistListController',
controllerAs: 'list'
},
// target the content view in the playlist.list state
'content@playlist.list': {
templateUrl: 'app/playlists/list/items/items.html',
controller: 'PlaylistItemsController',
controllerAs: 'items'
},
// target the rootSelector view in the playlist state
'rootSelector@playlist.list': {
templateUrl: 'app/selector/rootSelector.html',
controller: 'rootSelectorController',
controllerAs: 'rootSelector',
resolve: {
selectedPlaylistId: resolveSelectedPlaylistId,
}
}
}
};
我可以通過$ rootScope.broadcast和$ scope。$ on從PlaylistItemsController“ items”發送和接收事件到rootSelector
但如果它們來自嵌套的“ detailState”,我將無法收到它們
var detailState = {
name: 'playlist.list.detail',
parent: 'playlist.list',
url: '/detail/:id',
views: {
'detail@playlist.list': {
templateUrl: 'app/playlists/list/detail/detail.html',
controller: 'PlaylistDetailController',
controllerAs: 'detail',
resolve: {
playlistDb: resolvePlaylistDb,
}
}
}
};
好的,事件沒有通過原因
$scope.$on('removeTrackFromPlaylist'), function (event, args) { }
VS2015中沒有代碼錯誤
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.