Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择要打印的指令的正确方法_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript 选择要打印的指令的正确方法

Javascript 选择要打印的指令的正确方法,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,下面是一个场景 我正在向服务器发出$.get()请求,以了解用户的角色,例如,如果用户是管理员,普通用户或具有提升权限的用户。一旦我从PHP$\u会话中获得该值,我将返回一个json对象,然后对其进行解析并开始检查它是否是上述任何用户: $scope.getMenuType = function(){ $.get('controllers/getUserType.php', function(result){ dataForHubMenu = $.pars

下面是一个场景

我正在向服务器发出
$.get()
请求,以了解用户的角色,例如,如果用户是
管理员
普通
用户或具有提升权限的
用户
。一旦我从PHP
$\u会话
中获得该值,我将返回一个json对象,然后对其进行解析并开始检查它是否是上述任何用户:

$scope.getMenuType = function(){
        $.get('controllers/getUserType.php', function(result){
            dataForHubMenu = $.parseJSON(result);
            console.log(dataForHubMenu);
            if(dataForHubMenu.userType == 'normal'){
                $scope.menuType = '<normal-menu></normal-menu>';
            } else if(dataForHubMenu.userType == 'admin'){
                $scope.menuType = '<administrator-menu></administrator-menu>';
            } else if(dataForHubMenu.userType == 'director'){
                $scope.menuType = '<director-menu></director-menu>';
            }
        });
    };
完成此操作后,我希望我的变量
$scope.menuType
具有要打印的正确jQuery对象。因此,在我的HTML中,我执行以下操作:

<div ng-controller="HubController as hub" class="container">
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <div class="well">
                <h1 class="text-center">Panel de Control</h1>
                <hr>
                {{hub.menuType}}
            </div>
        </div>
    </div>
</div>
console.log()
出现在控制器内部和chrome上的控制台内部,两种情况下的输出相同

我不知道为什么会这样。我的指示如下:

app.directive("AdministratorMenu", function(){
    return {restrict: 'E', templateUrl: "views/admin-menu.html"}
});
app.directive("normalMenu", function(){
    return{restrict: 'E', templateUrl: "views/normal-menu.html"}
});
app.directive("directorMenu", function(){
    return{restrict: "E", templateUrl: "views/director-menu.html"}
});

知道我做错了什么吗?这是做我想做的事情的正确方法吗。我刚刚完成了@codeschool的angular课程,我正在这个小项目中试用高级功能

不太清楚为什么要将HubController作为该控制器attr的hub。如果您的控制器被链接,那么它应该是{menuType}而不带hub对象。@Christopher Marshall它仍然不打印jQuery对象。我想知道为什么。你的断点在if语句中被击中了吗?然后在$scope.menuType上设置一个断点,并查看是否为其分配了返回值。@ChristopherMarshall否未分配返回值。有没有可能因为jQuery对象在技术上不存在而忽略它?I console.log my dataForHubMenu,它会记录我需要的内容,包括用户的角色。当您使用以下行触发函数时:
scope.menuType=$scope.getMenuType()
,即使您在函数体内部将另一个值分配给
menuType
,在执行后,函数返回(未定义)也会分配给
meuType
。只需调用函数,不要将其返回值赋值。
console.log(angular.element($(".container")).scope().menuType);
undefined VM2228:2
undefined
app.directive("AdministratorMenu", function(){
    return {restrict: 'E', templateUrl: "views/admin-menu.html"}
});
app.directive("normalMenu", function(){
    return{restrict: 'E', templateUrl: "views/normal-menu.html"}
});
app.directive("directorMenu", function(){
    return{restrict: "E", templateUrl: "views/director-menu.html"}
});