簡體   English   中英

指令控制器中的Cant訪問狀態名稱

[英]Cant access state name inside directive controller

由於某些原因,當我嘗試從指令控制器訪問$ state.current.name時,它始終為空。 指令是否在狀態評估之前加載? 如果是這樣,是否有解決方法? 我需要根據SPA中的狀態顯示正確的導航

例如,在我看來,我有: <navigation></navigation>

我的指令:

angular.module('app')
        .directive('navigation', function($state){
            return {
                restrict: 'E',
                controller: function() {
                    alert($state.current.name);
                }
            }
         });

我的路線:

angular.module('app')
        .config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
            $urlRouterProvider.otherwise('/home');
            $stateProvider
                    .state('home', {
                        url: '/home',
                        views: {
                            "title": {
                                template: "<title>Home</title>"
                            },
                            "body": {
                                templateUrl: 'app/components/home/homeView.html',
                            },
                            "navigation" : {
                                templateUrl: 'app/shared/navigation/homeNavBarView.html'
                            }
                        }

                    })
        });

我設置的方式是我分別創建模塊,然后在單獨的文件中設置路由,並且偽指令也位於單獨的文件中。 然后將它們按順序加載到索引文件中。 不知道這是否與它有關。

我究竟做錯了什么?

您的控制器還必須將$ state作為參數嗎? 只是一個猜測,一切對我來說都很可靠:

controller: function($state) {
    alert($state.current.name);
}

使用$ state。 $current object而不是$state.current

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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