我想在登录到/ dashboard后重定向
$scope.submit = function (user) {
if ($scope.loginForm.$valid) {
UserService.login(user).then(
function (result) {
$location.path('/dashboard');
}, function (reason) {
$scope.msg = "username or password is not correct";
});
$scope.reset();
}
};
在app.js中的我想动态创建我的菜单并显示dashboard.html
$routeProvider
.when('/dashboard', {
templateUrl: 'views/dashboard.html',
abstract:true,
resolve: {
menu: function (MenuService) {
return MenuService.getMenu();
}
},
controller: function ($scope, menu) {
$scope.menu = menu;
$scope.oneAtATime = true;
}
})
在仪表板中我使用ng-view加载我的模板
<div class="content">
<div class="container">
<ng-view></ng-view>
</div>
但它抓住了#34;超出最大调用堆栈大小&#34;错误。
MenuService服务返回承诺
factory('MenuService', function ($q, $http) {
var getMenu = function () {
var deferred = $q.defer();
$http.post('/menu', 1).
success(function (data) {
deferred.resolve(data);
}).
error(function (data, status) {
deferred.reject(status);
});
return deferred.promise;
};
return{
getMenu: getMenu
}
})
我将MenuService.getMenu()更改为:
$routeProvider
.when('/dashboard', {
templateUrl: 'views/dashboard.html',
abstract:true,
resolve: {
menu: function (MenuService) {
MenuService.getMenu().then(function(result){
return result;
});
}
},
controller: function ($scope, menu) {
$scope.menu = menu;
$scope.oneAtATime = true;
}
})
现在已加载仪表板,但没有菜单。然后在dashboard.html加载后调用方法!!!!
当我删除ng-view时,每件事情都完美无缺。
我的问题是什么? 谢谢