Javascript Angularjs基于存储在会话存储中并存储在$scope上的变量动态显示/隐藏元素
我已经搜索了很多,但找不到一个在不刷新页面的情况下显示/隐藏元素的解决方案。这是我试图实现的目标的简化版本: HTML: 我能够成功地获得存储在会话存储中的用户名,但是在变量存储在sessionStorage和$scope.user中之后,我无法使输入消失,div动态显示 如果我在登录后刷新页面,则“显示”和“隐藏”都可以工作 另一种方法是在登录函数中显示/隐藏元素,但我也不知道如何做到这一点Javascript Angularjs基于存储在会话存储中并存储在$scope上的变量动态显示/隐藏元素,javascript,html,angularjs,Javascript,Html,Angularjs,我已经搜索了很多,但找不到一个在不刷新页面的情况下显示/隐藏元素的解决方案。这是我试图实现的目标的简化版本: HTML: 我能够成功地获得存储在会话存储中的用户名,但是在变量存储在sessionStorage和$scope.user中之后,我无法使输入消失,div动态显示 如果我在登录后刷新页面,则“显示”和“隐藏”都可以工作 另一种方法是在登录函数中显示/隐藏元素,但我也不知道如何做到这一点 有没有办法让它们动态显示/隐藏?提供的代码没有问题。这里有一个很好的例子,我删除的唯一一件事就是访问s
有没有办法让它们动态显示/隐藏?提供的代码没有问题。这里有一个很好的例子,我删除的唯一一件事就是访问
sessionStorage
,因为出于安全原因,它不允许在沙箱模式下使用
确保您已分别声明了ng app
和ng controller
指令
var-app=angular.module(“myApp”,[]);
app.controller(“myController”,[“$scope”,
职能($范围){
$scope.login=函数(){
$scope.user=$scope.username;
};
}
]);代码>
添加用户
应在定义用户时显示
你能提供codepen代码段或JSFIDLE代码段吗?@PareshGami我现在会处理的。是的,请提供相同的代码,以便我可以帮助你。这段代码没有明显的错误ng show
应该动态更新,除非您的user
变量在不同的范围内;值得一提的是,在使用原语而不是对象时,这是完全可能的,但如果没有看到更多的HTML和控制器结构,就不清楚在您的情况下是否会发生这种情况。这段代码很有用,我不确定是什么修复了它,但有些东西确实修复了它
<input ng-show="user == null" type="text" placeholder="username" ng-model="username" />
<button ng-show="user == null" ng-click="login()">Add User</button>
<div ng-show="user != null"> should show when user is defined </div>
$scope.login = function () {
sessionStorage.setItem('username', $scope.username);
$scope.user = sessionStorage.getItem('username');
};