angularjs - 如何将会话存储值设置为 Angular JS 中的下拉选择字段
问题描述
我在使用 Angular JS 设置下拉字段的值时遇到问题。下面是我拥有的 HTML 和 js 代码。我正在使用https://select2.org/ (选择下拉组件)。
<div class="dropdown">
<label class="label"
>Type of card</label
>
<select
class="select js-select2"
ng-model="cardInfo.cardType"
required
>
<option value="debit">Debit card</option>
<option value="credit">Credit card</option>
</select>
</div>
</div>
JS :
var saveToStorage = function() {
var state = {
cardInfo: $scope.cardInfo
};
window.sessionStorage.setItem("wizard", JSON.stringify(state));
};
var loadStorage = function() {
var state = window.sessionStorage.getItem("wizard");
if (state) {
var newState = JSON.parse(state);
$scope.cardInfo= newState.cardInfo;
console.log('$scope.cardInfo', $scope.cardInfo.cardType ); // prints cardType: "Debit card"
}
};
var init = function() {
loadStorage();
};
我在会话存储中设置 cardType 的值并且设置正确,但是我在将值绑定到下拉组件时遇到的问题,无论我选择什么,它总是被设置为默认的第一个选项。事实上,我试图在 HTML 中显示 ng-model 值,无论在 session 中设置什么,它都会显示正确的值,但只是下拉菜单没有设置 session 值。
解决方案
Because you have to add
ng-init when you initialize the drop-down.
Add html code:
<div class="dropdown" ng-init="init()">
<label class="label"
>Type of card</label
>
<select
class="select js-select2"
ng-model="cardInfo.cardType"
required
>
<option value="debit">Debit card</option>
<option value="credit">Credit card</option>
</select>
</div>
</div>
js code:
$scope.saveToStorage = function() {
var state = {
cardInfo: $scope.cardInfo
};
window.sessionStorage.setItem("wizard", JSON.stringify(state));
};
var loadStorage = function() {
var state = window.sessionStorage.getItem("wizard");
if (state) {
var newState = JSON.parse(state);
$scope.cardInfo= newState.cardInfo;
console.log('$scope.cardInfo', $scope.cardInfo.cardType ); // prints cardType: "Debit card"
}
};
$scope.init = function() {
loadStorage();
};
推荐阅读
- pine-script - 松脚本重复信号问题
- ios - 有没有办法创建一个包含 Arm 和 x86 代码的预编译库,并且可以被 macOS、iOS 和 iOS 模拟器调用?
- java - 如何将按钮呈现到 main.dart 文件?另外,有没有什么方法可以在不使用任何按钮的按下()的情况下将参数传递给命名路由?
- javascript - 平滑渲染 - React Native
- r - 循环替换R中字符串/因子变量/向量中的字符
- microsoft-graph-api - 收到validationToken但订阅验证请求超时
- node.js - 错误:监听 EADDRINUSE:地址已在使用 :::5000
- python - Python super() 参数 1 必须是类型,而不是 classobj
- sql - 在 Rails 中搜索匹配确切条件的多对多关系
- flutter - 将滚动条添加到 CustomScollView