Как сделать так, чтобы выбранное значение отличалось от значения опций в AngularJS? - PullRequest
0 голосов
/ 09 мая 2020

Как я могу сделать выбранное значение отличным от значений, указанных в опциях с выбором в AngularJS. Вот что у меня есть сейчас: enter image description here

Я хочу, чтобы выбранное значение отображалось как «EN», а параметры внутри - «Engli sh. "," Italian ", ...

Ниже мой HTML Код для элемента select:

<select class="select-language d-md-none d-inline-block" ng-options="lang.Lang_Code for lang in languagesMenu" 
        ng-model="language" ng-change="changeLanguage()" ng-cloak>
</select>

Это мой JavaScript для языковMenu:

// navigation languages
    $scope.languagesMenu = [
        {
            Language: "English",
            Country: "USA",
            Code: "en/us/",
            Lang_Code: "en"
        }, {
            Language: "Italian",
            Country: "IT",
            Code: "it/it/",
            Lang_Code: "it"
        }
    ]

А это функция changeLanguage:

// change language 
    $scope.changeLanguage = function () {
        $window.open($scope.language.Code, '_self');
    }

Как сделать, чтобы параметры были «Language» из массива JSON, а выбранное значение - «Lang_Code» ?

1 Ответ

0 голосов
/ 10 мая 2020

Следующий фрагмент может помочь там, где мы:

  • используем ng-options="item.Language for item in languagesMenu ", чтобы выбрать, какое свойство в объекте languagesMenu будет отображаться
  • , а затем мы используем $scope.selectedName.Code, который принимает свойство Code из нашего выбранного объекта (благодаря ng-model) в go для перенаправления на соответствующую страницу

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $window) {
  $scope.languagesMenu = [{
      Language: "English",
      Code: "us/"
    },
    {
      Language: "Italian",
      Code: "it/"
    },
    {
      Language: "Chinese",
      Code: "cn/"
    }
  ];
  $scope.changeLanguage = function() {
    $window.open($scope.selectedName.Code, '_self');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>

<div ng-app="myApp" ng-controller="myCtrl">
  <select ng-model="selectedName" ng-options="item.Language for item in languagesMenu " ng-change="changeLanguage()">
  </select>
  Selected language: {{selectedName.Code }}
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...