如何使选定的值与 AngularJS 中的选项值不同?

Posted

技术标签:

【中文标题】如何使选定的值与 AngularJS 中的选项值不同?【英文标题】:How to make selected value different than options value in AngularJS? 【发布时间】:2020-08-25 01:36:44 【问题描述】:

如何使选定的值与 AngularJS 中的 select 选项中给出的值不同。 这是我现在拥有的:

我想要实现的是,将所选值显示为“EN”,但里面的选项是“English”,“Italian”,...

下面是我的选择元素的 html 代码:

<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

// 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');
    

如何使选项成为 JSON 数组中的“语言”,而选择的值成为“Lang_Code”?

【问题讨论】:

【参考方案1】:

以下 sn-p 可能对我们有所帮助:

使用ng-options="item.Language for item in languagesMenu " 选择显示languagesMenu 对象中的哪个属性 然后我们使用$scope.selectedName.Code 从我们选择的对象中获取Code 属性(感谢ng-model)重定向到相关页面

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>

【讨论】:

以上是关于如何使选定的值与 AngularJS 中的选项值不同?的主要内容,如果未能解决你的问题,请参考以下文章

线图:x轴值与数据框中的值不完全相同[重复]

如何使用 AngularJS for Ionic 更改网页中的选定选项?

angularJS 可编辑下拉选项框

Git 索引和工作树 EOL 值与 .gitattributes 中设置的值不匹配

当项目与数据库中的值不相等时如何取回列表的数据源

AngularJS - 在下拉列表中设置选定值,其中值与另一个对象匹配