Javascript 角度v1+;:通过angularjs加载页面中的不同区域

Javascript 角度v1+;:通过angularjs加载页面中的不同区域,javascript,angularjs,Javascript,Angularjs,假设当第一次加载网站时,我需要加载左侧和顶部菜单 两个菜单都将独立加载,因此任何人都可以先加载并显示。 所以,请告诉我,如果先加载左上菜单或左上菜单,我需要应用什么技巧来同时显示左上菜单。我需要同时显示两个菜单 请在下面告诉我需要更改哪些代码。下面的代码只是一个示例代码,没有经过测试 app.service("TopMenuService", function ($http) { this.getTopMenu = function () { debugger;

假设当第一次加载网站时,我需要加载左侧和顶部菜单

两个菜单都将独立加载,因此任何人都可以先加载并显示。 所以,请告诉我,如果先加载左上菜单或左上菜单,我需要应用什么技巧来同时显示左上菜单。我需要同时显示两个菜单

请在下面告诉我需要更改哪些代码。下面的代码只是一个示例代码,没有经过测试

app.service("TopMenuService", function ($http) {  
    this.getTopMenu = function () {  
        debugger;  
        return $http.get("/employee/getTopMenu");  
    };  
});  

app.service("LeftMenuService", function ($http) {  
    this.getLeftMenu = function () {  
        debugger;  
        return $http.get("/employee/getLeftMenu");  
    };  
});  

app.controller("EmpCtrl", function ($scope, TopMenuService,LeftMenuService) {  

    GetTopMenu();  
    GetLeftMenu();  

    function GetTopMenu() {  

        debugger;  
        var _getTopMenu = EmployeeService.getTopMenu();  
        _getTopMenu.then(function (topmenu) {  
            $scope.topmenu = topmenu.data;  
        }, function () {  
            alert('Data not found');  
        });  
    }  

    function GetLeftMenu() {  

        debugger;  
        var _getLeftMenu = EmployeeService.getLeftMenu();  
        _getLeftMenu.then(function (leftmenu) {  
            $scope.leftmenu = leftmenu.data;  
        }, function () {  
            alert('Data not found');  
        });  
    }      
});  

如果要确保只有在两个请求完成后才能继续,请使用$q.all:

app.controller('EmpCtrl', function($scope, TopMenu, LeftMenu, $q) {
    $q.all([TopMenu.get(), LeftMenu.get()]).then(function(both) {
       var top = both[0];
       var left = both[1];
    });
});

由承诺控制的加载菜单过程如何

注意
$q.all()
AngularJs中的承诺由。承诺用于同步并发环境中任务的执行,AngularJs的
$q.all
接收各种承诺的列表并触发
,然后在列表上的所有承诺都得到解决时
回调,在这种情况下,这两个承诺是每个菜单的
$http.get()
,这是一个异步承诺案例,因此在发送响应时,它解析承诺并触发
然后()
注册回调,最终也将触发
$q.all()


只是想知道javascript是通用关键字还是特定角度的?什么是$q?它所做的
返回$q.all([GetTopMenu(),GetLeftMenu()])$q是angular的服务,它是Promise的替代品,现在ES6或babel transpiled通过Promise支持这种开箱即用的服务。allthen关键字特定于$q关键字。我的意思是当我们使用$q关键字时,我们可以使用then函数?在角度上是新的。所以不知道所有。请分享知识。谢谢,我只是想知道javascript是通用关键字还是特定角度的?什么是$q?它所做的
返回$q.all([GetTopMenu(),GetLeftMenu()])然后关键字特定于$q关键字。我的意思是当我们使用$q关键字时,我们可以使用then函数?在角度上是新的。所以不知道所有。请分享知识。thanks@Mou通常我们强制使用
无缓存
头或向url
参数添加时间戳参数:{v:new Date().getTime()}
,但您可以在中找到更详细的错误,因此您可以使用
$locationProvider.hmlt5Mode(true)
,如果您的浏览器支持历史API,它将呈现不带
的路由url。免责声明,这个话题现在已经脱离了上下文,我建议你搜索一下,或者打开一个新的问题,这个帖子不属于这个问题,所以不应该在这里讨论。问一个新问题,或者在一个现有的问题中找到答案,这样我会很乐意帮助你。干杯
app.controller("EmpCtrl", function ($scope, $q, TopMenuService, LeftMenuService) {

    $scope.shouldDisplayMenus = false;

    LoadMenus().then(function () {
        $scope.shouldDisplayMenus = true;
    });

    function LoadMenus() {
        return $q.all([
            GetTopMenu(),  
            GetLeftMenu()
        ]);
    }

    function GetTopMenu() {  

        debugger;  
        var _getTopMenu = EmployeeService.getTopMenu();  
        _getTopMenu.then(function (topmenu) {  
            $scope.topmenu = topmenu.data;  
        }, function () {  
            alert('Data not found');  
        });

        return _getTopMenu;
    }  

    function GetLeftMenu() {  

        debugger;  
        var _getLeftMenu = EmployeeService.getLeftMenu();  
        _getLeftMenu.then(function (leftmenu) {  
            $scope.leftmenu = leftmenu.data;  
        }, function () {  
            alert('Data not found');  
        });

        return _getLeftMenu;
    }      
});