我想使用angular-ui来创建动态菜单 在我的LoginCtrl中。我调用服务从服务器获取菜单以在仪表板中显示。 这是我的代码:
在LoginCtrl控制器中:
UserService.getMenu().then(
function (result) {
$scope.menu = result;
$location.path('/dashboard');
}, function (status) {
$scope.msg = "error " + status + " has been occur,please report to admin ";
}
);
在dashboard.html中
<div ng-controller="LoginCtrl">
<label class="checkbox">
<input type="checkbox" ng-model="oneAtATime">Open only one at a time
</label>
<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">
<accordion close-others="oneAtATime">
<!--working pack-->
<accordion-group heading="{{wp.name}}" ng-repeat="wp in menu.workingPackList">
<accordion close-others="oneAtATime">
<!--product pack-->
<accordion-group heading="{{pr.name}}" ng-repeat="pr in menu.productList">
</accordion-group>
</accordion>
</accordion-group>
</accordion>
</accordion-group>
</accordion>
</accordion-group>
</accordion>
</div>
但我不知道为什么它不起作用。我的菜单从服务器成功加载但在dashboard.html中我无法访问$ scope.menu。
我正在徘徊,它在另一个html文件中工作 例如,如果我在login.html中复制上面的代码,我可以访问$ scope.menu
但它在仪表板中不起作用!!!
我的登录控制器:
'use strict';
angular.module( 'mabnaaApp') .controller('LoginCtrl',函数($ scope,$ location,UserService){
$scope.oneAtATime = true;
$scope.user = {
username: '',
password: ''
};
$scope.submit = function (user) {
if ($scope.loginForm.$valid) {
UserService.login(user).then(
function (result) {
UserService.getMenu().then(
function (result) {
$scope.menu = result;
$location.path('/dashboard');
}, function (status) {
$scope.msg = "error " + status + " has been occur,please report to admin ";
});
}, function (reason) {
$scope.msg = "username or password is not correct";
});
$scope.reset();
}
};
$scope.reset = function () {
$scope.user = {
username: '',
password: ''
};
};
var existy = function (x) {
return x != '';
};
$scope.userExists = function () {
return existy($scope.user.username);
};
$scope.isLogin = !existy($scope.user.username);
});