Angularjs 角度$routeProvider分辨率

Angularjs 角度$routeProvider分辨率,angularjs,Angularjs,我想动态创建菜单,为此,我在加载仪表板之前使用resolve var app = angular.module('mabnaaApp', ['ngRoute', 'ngResource', 'ngAnimate', 'ui.bootstrap', 'ur.file']) .config(function ($routeProvider) { $routeProvider .when('/login', { templateUrl: 'views/l

我想动态创建菜单,为此,我在加载仪表板之前使用resolve

var app = angular.module('mabnaaApp', ['ngRoute', 'ngResource', 'ngAnimate', 'ui.bootstrap', 'ur.file'])
.config(function ($routeProvider) {
    $routeProvider
        .when('/login', {
            templateUrl: 'views/login.html',
            controller: 'LoginCtrl'
        })
        .when('/dashboard', {
            templateUrl: 'views/dashboard.html',
            resolve: {
                menu: function (MenuService) {
                    return MenuService.getMenu();
                }
            },
            controller: function ($scope, menu) {
                $scope.menu = menu;
                $scope.oneAtATime = true;
            }
        })
        .when('/flatFile', {
            templateUrl: 'views/flatFile.html'
        })
        .when('/view/:vtId/:prId', {
            templateUrl: 'views/viewDetail.html',
            controller: 'ViewDetailController'
        })
        .otherwise({
            redirectTo: '/login'
        });
}).factory('MenuService', function ($q, $http) {
    var getMenu = function () {
        var deferred = $q.defer();
        $http.post('/m1Object/menu', 1).
            success(function (data) {
                deferred.resolve(data);
            }).
            error(function (data, status, header, config) {
                $log.warn(data, status, header(), config);
                deferred.reject(status);
            });
        return deferred.promise;
    };

    return{
        getMenu: getMenu
    }
});
    <accordion close-others="oneAtATime"><!--nashta-->
    <accordion-group heading="{{project.name}}" ng-repeat="project in menu.projectName">

        <accordion close-others="oneAtATime"><!--bank-->
            <accordion-group heading="{{bank.name}}" ng-repeat="bank in menu.bankingList" is-disabled="bank.value == null? true:false">

                <accordion close-others="oneAtATime"><!--working pack-->
                    <accordion-group heading="{{wp.name}}" ng-repeat="wp in menu.workingPackList" is-disabled="wp.value == null? true:false">

                        <accordion close-others="oneAtATime"><!--product pack-->
                            <accordion-group heading="{{pr.name}}" ng-repeat="pr in menu.productList" is-disabled="pr.value == null? true:false">

                                <accordion ng-repeat="vt in menu.viewType">
                                    <li ng-controller="ViewDetailController"><a href="/app/index.html#/view/{{pr.value}}/{{vt.value}}" ancher-cheking ng-click="getViewDetail">{{vt.name}}</a></li>
                                </accordion>

                            </accordion-group>
                        </accordion>

                    </accordion-group>
                </accordion>

            </accordion-group>
        </accordion>
    </accordion-group>
</accordion>
我的菜单加载完美,然后我在仪表板中创建我的菜单

var app = angular.module('mabnaaApp', ['ngRoute', 'ngResource', 'ngAnimate', 'ui.bootstrap', 'ur.file'])
.config(function ($routeProvider) {
    $routeProvider
        .when('/login', {
            templateUrl: 'views/login.html',
            controller: 'LoginCtrl'
        })
        .when('/dashboard', {
            templateUrl: 'views/dashboard.html',
            resolve: {
                menu: function (MenuService) {
                    return MenuService.getMenu();
                }
            },
            controller: function ($scope, menu) {
                $scope.menu = menu;
                $scope.oneAtATime = true;
            }
        })
        .when('/flatFile', {
            templateUrl: 'views/flatFile.html'
        })
        .when('/view/:vtId/:prId', {
            templateUrl: 'views/viewDetail.html',
            controller: 'ViewDetailController'
        })
        .otherwise({
            redirectTo: '/login'
        });
}).factory('MenuService', function ($q, $http) {
    var getMenu = function () {
        var deferred = $q.defer();
        $http.post('/m1Object/menu', 1).
            success(function (data) {
                deferred.resolve(data);
            }).
            error(function (data, status, header, config) {
                $log.warn(data, status, header(), config);
                deferred.reject(status);
            });
        return deferred.promise;
    };

    return{
        getMenu: getMenu
    }
});
    <accordion close-others="oneAtATime"><!--nashta-->
    <accordion-group heading="{{project.name}}" ng-repeat="project in menu.projectName">

        <accordion close-others="oneAtATime"><!--bank-->
            <accordion-group heading="{{bank.name}}" ng-repeat="bank in menu.bankingList" is-disabled="bank.value == null? true:false">

                <accordion close-others="oneAtATime"><!--working pack-->
                    <accordion-group heading="{{wp.name}}" ng-repeat="wp in menu.workingPackList" is-disabled="wp.value == null? true:false">

                        <accordion close-others="oneAtATime"><!--product pack-->
                            <accordion-group heading="{{pr.name}}" ng-repeat="pr in menu.productList" is-disabled="pr.value == null? true:false">

                                <accordion ng-repeat="vt in menu.viewType">
                                    <li ng-controller="ViewDetailController"><a href="/app/index.html#/view/{{pr.value}}/{{vt.value}}" ancher-cheking ng-click="getViewDetail">{{vt.name}}</a></li>
                                </accordion>

                            </accordion-group>
                        </accordion>

                    </accordion-group>
                </accordion>

            </accordion-group>
        </accordion>
    </accordion-group>
</accordion>

我的问题是什么?为什么在创建菜单的过程中调用getViewDetail函数?

你能尝试使用
ng click=“getViewDetail()”
你能在fiddle/plunker中复制吗?@DivyaMV我试过了,但没有改变。在上一幅图中,开发者工具检查了这个调试点上的调用堆栈,您可以看到是哪段代码启动了getViewDetail()