繁体   English   中英

如何使用Angular.js从下拉列表中预填充第一个标志

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM