【发布时间】:2018-03-11 20:06:57
【问题描述】:
当用户通过身份验证时,我无法显示视图。为什么简单的ng-show="vm.isLoggedIn" 在评估为true 时不显示视图?
这是我的HTML:
<div ng-show="vm.isLoggedIn">
<div ng-view></div>
</div>
这是我的控制器:
var MainCtrl = function(userAccount) {
var vm = this;
vm.isLoggedIn = false;
vm.userData = {
userName: "",
email: "",
password: "",
confirmPassword: ""
};
vm.login = function () {
vm.userData.grant_type = "password";
vm.userData.userName = vm.userData.email;
userAccount.login.loginUser(vm.userData, function (data) {
vm.isLoggedIn = true;
vm.message = "";
vm.password = "";
vm.token = data.access_token;
});
}
}
这是我创建的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-view?即使ng-show 的计算结果为真?
【问题讨论】:
标签: javascript angularjs authentication asp.net-web-api