簡體   English   中英

ui.router嵌套狀態,嵌套視圖:$ rootScope。$ on $ rootScope。$ broadcast不連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM