【问题标题】:Angular ngOptions track by object keysAngular ngOptions 按对象键跟踪
【发布时间】:2016-09-21 22:15:46
【问题描述】:

我想用 ngOptions 创建一个选择元素 - 到目前为止一切顺利:

<select ng-options="currency for (code, currency) in currencies track by code"
        ng-model="something.currency"></select>

现在我想通过对象键跟踪选项(因此ng-model 的值应该是键而不是对象的值)。这是否可能以某种简单的方式以及如何实现?

【问题讨论】:

    标签: angularjs ng-options


    【解决方案1】:

    这是你要找的吗?

    var myApp = angular.module('myApp',[]);
    
    myApp.controller('GreetingController', ['$scope', function($scope) {
      $scope.currencies_old = [
        {code: "USD", curr: "$"},
        {code: "IND", curr: "INR"}
      ];
      $scope.currencies = {"USD": "USDollars", "EUR": "Euro"};
    }]);
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <div ng-app="myApp" ng-controller="GreetingController">
    <select ng-model="item" ng-options="key as value for (key , value) in currencies"></select>
    Code: {{item}}
      
    <br/> <br/> 
    <select ng-options="item as item.curr for item in currencies_old track by item.code" ng-model="item_old"></select>
    Code: {{item_old.code}}
    </div>

    【讨论】:

    • 不,这是“简单的方法”。我的意思是像{"USD": "US Dollars", "EUR": "Euro"} 这样构建的对象
    • @JSHelp :我已经根据您定义的对象更新了代码。如果您仍然发现任何问题,请检查并告诉我。
    • 是的,就是这样。奇怪的是,这就是我实现它的方式,只是 ngModel 总是返回值而不是键,但这证明它应该可以工作,所以我将它标记为正确的解决方案。
    • @JSHelp 很高兴看到它对您有所帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 2018-09-01
    • 2017-07-10
    • 1970-01-01
    • 2012-11-11
    • 2014-01-09
    相关资源
    最近更新 更多