对值执行操作的角度绑定
Angular binding with action on value
我有一个带有密码字段的HTML表单,它像这样保存在本地存储中:
在JS中:
$scope.localStorage = localStorage;
然后在HTML:中
<input id="pass" type="password" ng-model="localStorage.pass" required/>
在这个例子中,按原样存储密码是有风险的,所以我对它进行加密。为了简单起见,我们假设使用btoa()
和atob()
方法。
我希望能够转换值,所以当它被插入到本地存储[或任何其他变量]中时,可以说它是btoa
ed,然后为了显示,它被使用atob
转换回可读文本。
我找不到任何关于这种转换的有用信息,尽管我认为应该存在类似ng-options
的东西,其中可以将转换应用于数据,例如:ng-options="item as item.slice(-4)
来自前方的感谢。
请注意,我知道安全方面的考虑,也知道这通常是个坏主意,但这个问题是为了通用答案。
虽然这不能回答您的问题,但在我看来,直接绑定到localStorage
并不是一个优雅的解决方案。我会用这样的东西来代替:
$scope.viewModel = { password: atob(localStorage.pass), ... };
$scope.login = function() {
...
localStorage.pass = btoa($scope.viewModel.password);
}
或者,如果你想在每次模型更改时保存它,你可以订阅模型更改事件:
$scope.$watch('viewModel.password', function(newValue) {
localStorage.pass = btoa(newValue);
});
相关文章:
- 使用react router/react router redux将特定的redux操作绑定到一个路由
- 浏览器化 - 将操作绑定到函数
- bind():您正在将一个组件方法绑定到该组件.React会自动为您执行此操作
- 如何删除绑定到单击事件的任何jQuery操作
- html+jquery(绑定onclick事件以执行onclick之前的操作)
- 处理Ember中操作中的事件绑定和回调
- 重新绑定分配给ajax链接的操作
- 在foreach数据绑定完成后执行某些操作
- extjs,如何在表单操作中绑定事件
- Ember.js – 将按钮操作从 #each 循环绑定到其自己的模型
- 如何将链接绑定到我可以使用 Jquery 操作的按钮
- 如何在 vue.js 中为由任何操作(不是由用户做出的)更改的元素进行单向绑定
- 无法将操作链接绑定到 html 按钮
- 在骨干路由器的一个操作中绑定多个视图
- 在 Knockoutjs 中滑动操作绑定
- 对密钥绑定谷歌浏览器扩展程序的操作
- 如何将一个简单的Javascript数组绑定到MVC3控制器操作方法
- DOM操作后绑定jQuery滑块
- 是否有将自定义操作绑定到的最佳实践
- 在jQuery中单击按钮时绑定操作;不起作用