[英]How to make first flag prefilled from dropdown list using Angularjs
我在下拉菜单中有2个标志,我希望下拉菜单中的第一个标志被预先填充。 请帮忙。 带有英文名称的标志必须预先填充,如果我更改标志,则刷新后必须保留最近更新的标志。
我在这里共享代码:
HTML:
<li id="globeList">
<md-select ng-model="selectedLanguage" aria-label="selectedLanguage2" ng-change="changeLanguage(selectedLanguage)">
<md-option ng-value="{{item}}" ng-repeat="(index,item) in lans" ng-selected="item.name == langStatus">
<img src="{{item.image}}" alt="{{item.name}}" title="{{item.name}}">
</md-option>
</md-select>
</li>
控制器:
$scope.langStatus = sessionStorage.getItem("languageName");
if ($scope.langStatus) {
userApi.getLangName($scope.langStatus)
.then(function(success) {
$rootScope.languageName = success.data[0];
}, function(error) {
console.log(error);
})
} else {
var lang_name = 'English';
userApi.getLangName(lang_name)
.then(function(success) {
$rootScope.languageName = success.data[0];
sessionStorage.setItem("languageName", lang_name);
}, function(error) {
console.log(error);
})
}
$scope.toggleImg = function(art_id, id) {
var bigImage = angular.element("#" + art_id).attr('src');
var smallImage = angular.element("#" + id).attr('src');
angular.element("#" + art_id).attr('src', smallImage);
angular.element("#" + id).attr('src', bigImage);
}
$scope.changeLanguage = function(selectedLanguage) {
userApi.getLangName(selectedLanguage.name)
.then(function(success) {
$rootScope.languageName = success.data[0];
sessionStorage.setItem("languageName", selectedLanguage.name);
}, function(error) {
console.log(error);
})
}
尝试使用以下之一
<md-select ng-model="selectedLanguage" ng-init="selectedLanguage = lans[0]" aria-label="selectedLanguage2" ng-
change="changeLanguage(selectedLanguage)">
<md-option ng-value="{{item}}" ng-repeat="(index,item) in lans" ng-
selected="item.name == langStatus">
<img src="{{item.image}}" alt="{{item.name}}" title="{{item.name}}">
</md-option>
</md-select>
尝试在ng-init中初始化第一个选项,然后它应适合您的情况
我认为您没有加载默认语言
setDefaultEnglish();
function setDefaultEnglish() {
var test = sessionStorage.getItem("languageName");
if(!test){
var lang_name = 'English';
sessionStorage.setItem("languageName", lang_name);
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.