Angularjs 角度$routeProvider分辨率
我想动态创建菜单,为此,我在加载仪表板之前使用resolveAngularjs 角度$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
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()