Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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_Angularjs_Authentication_Asp.net Web Api - Fatal编程技术网

Javascript 如果用户经过身份验证,则显示视图

Javascript 如果用户经过身份验证,则显示视图,javascript,angularjs,authentication,asp.net-web-api,Javascript,Angularjs,Authentication,Asp.net Web Api,当用户通过身份验证时,我无法显示视图。为什么一个简单的ng show=“vm.isLoggedIn”在计算为true时不显示视图 这是我的HTML: <div ng-show="vm.isLoggedIn"> <div ng-view></div> </div> 这是我创建的userAccount服务 var userAccount = function ($resource, appSettings) { return {

当用户通过身份验证时,我无法显示视图。为什么一个简单的
ng show=“vm.isLoggedIn”
在计算为
true
时不显示视图

这是我的
HTML

<div ng-show="vm.isLoggedIn">
    <div ng-view></div>
</div>
这是我创建的
userAccount
服务

var userAccount = function ($resource, appSettings) {
    return {
        registration: $resource(appSettings.serverPath + "/api/Account/Register", null,
            {
                "registerUser": { method: "POST" }
            }),
        login: $resource(appSettings.serverPath + "/Token", null, 
            {
                "loginUser": {
                    method: "POST",
                    headers: { "Content-Type": "application/x-www-form-urlencoded" },
                    transformRequest: function (data, headersGetter) {
                        var str = [];
                        for (var d in data) {
                            str.push(encodeURIComponent(d) + "=" + encodeURIComponent(data[d]));
                        }
                        return str.join("&");
                    }
                }
            })
    }
}
我不认为这与
MainCtrl
userAccount
有关,但我将它们包含在上下文中


ng show
是否阻止显示任何
ng视图
?即使ng show的计算结果为true?

您也可以使用ng include和vm.isLoggedIn作为url,当它不为false时,它将被包括在内例如:

<button ng-click="vm.isLoggedIn=user==authenticated?'put url hier':false">Include</button>
<div ng-include="vm.isLoggedIn"></div>
包括

您可以使用ng include和vm.isLoggedIn作为url,当它不为false时,它将被包括在内示例:

<button ng-click="vm.isLoggedIn=user==authenticated?'put url hier':false">Include</button>
<div ng-include="vm.isLoggedIn"></div>
包括

您需要检查两件事

  • 在html中,确保使用“controller as”符号,并且将控制器命名为vm:

    ng controller=“作为vm的whateverCtrl”

  • 如果不这样做,vm.isLoggedIn将无法正确计算

  • 确保确实调用了vm.login方法,以便将标志实际设置为true。您还应该将控制器中的标志最初设置为true,以查看该标志实际具有您想要的效果。一旦你看到了这个东西,然后再把它变成假的,然后从那里继续下去
  • 即使这可能不是问题所在,我也会编写一个标志检查代码,如下所示:

    <div ng-show="vm.isLoggedIn === true">
        <div ng-view></div>
    </div>
    

    您需要检查两件事

  • 在html中,确保使用“controller as”符号,并且将控制器命名为vm:

    ng controller=“作为vm的whateverCtrl”

  • 如果不这样做,vm.isLoggedIn将无法正确计算

  • 确保确实调用了vm.login方法,以便将标志实际设置为true。您还应该将控制器中的标志最初设置为true,以查看该标志实际具有您想要的效果。一旦你看到了这个东西,然后再把它变成假的,然后从那里继续下去
  • 即使这可能不是问题所在,我也会编写一个标志检查代码,如下所示:

    <div ng-show="vm.isLoggedIn === true">
        <div ng-view></div>
    </div>
    
    
    
    我已经检查了这两个问题。如果我离开
    vm.isLoggedIn=true当控制器初始化时,它将显示。我认为问题在于当我更新
    vm.isLoggedIn
    时,如何让
    ng show
    正常工作。我已经检查了这两个问题。如果我离开
    vm.isLoggedIn=true当控制器初始化时,它将显示。我认为问题在于,当我更新
    vm.isLoggedIn
    时,
    ng show
    能够正常工作。