Angularjs基于存储在会话存储中并存储在$scope上的变量动态显示/隐藏元素
Angularjs dynamically show / hide an element based on a variable stored in session storage and stored on $scope
我已经搜索了很多,但找不到一个在不刷新页面的情况下显示/隐藏元素的解决方案。这是我试图实现的一个简化版本:
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');
};
我能够成功地将用户名存储在会话存储中,但在变量存储在sessionStorage和$scope.user.中后,我无法使输入消失,也无法使div动态显示
如果我在登录后刷新页面,显示和隐藏会起作用。
另一种方法是在登录函数中显示/隐藏元素,但我也不知道如何做到这一点。
有没有办法让它们动态显示/隐藏?
提供的代码没有任何问题。这里有一个非常有效的例子,我唯一删除的是对sessionStorage
的访问,因为出于安全原因,它不允许在沙箱模式下使用。
确保已分别声明ng-app
和ng-controller
指令
var app = angular.module("myApp", []);
app.controller("myController", ["$scope",
function($scope) {
$scope.login = function() {
$scope.user = $scope.username;
};
}
]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myController">
<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>
</div>
相关文章:
- AngularJS:ng之后,重复$scope值未按预期更新
- 将作用域存储在JSON中
- 使用javascript存储变量的最安全方式
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 如何有效地将游戏数据存储在URL查询字符串中
- Ember.js-接口状态应该存储在哪里
- $ionicplatform内的$scope不;不起作用
- 如何解雇“;铁局部存储负载”;事件
- 本地存储中的字符串到字节数组转换
- 从jQuery调用存储在Variable中的函数
- 推荐在JavaScript中执行存储为字符串的函数,而不是使用eval
- 使用$scope方法时的ControllerAs语法
- 通过另一个php应用程序将我的项目推送到Github存储库中
- 在 DevExtreme Widgets 中使用存储在 $scope 中的数据
- 检查会话存储并将变量传递给 Angular 中的$scope的正确方法
- Angularjs基于存储在会话存储中并存储在$scope上的变量动态显示/隐藏元素
- Angular.js:存储http.get请求中的变量,以便在不同的$scope函数中全局使用
- 来自工厂的原型中的方法出现了奇怪的错误,存储在控制器的$scope中
- Angularjs-表示存储在$scope/model中的html和ng标记的指令