【问题标题】:ng-options pass value from dictionaryng-options 从字典中传递值
【发布时间】:2017-07-30 00:00:00
【问题描述】:

我有一本字典,所以在 json 中

Object {1: "value1", 4: "value2" }

我想传递选定的值而不是键。

现在我的代码是这样的:

<select ng-model="myModel.myValue" ng-options="key as item for (key, value) in items" class="form-control">
<option value="">Choose</option>                                          </select>

【问题讨论】:

  • 试试这个key as value for (key, value) in items
  • 结果一样,还是pass key

标签: javascript angularjs dictionary select ng-options


【解决方案1】:

尝试在选项中使用ng-repeat 而不是ng-options

var app = angular.module('anApp', []);
app.controller('aCtrl', function($scope) { 
  $scope.items = {1: "value1", 4: "value2" };
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="anApp" ng-controller="aCtrl">
  <select ng-model="myModel.myValue" class="form-control">
     <option ng-repeat="(key,value) in items" value="{{value}}">
       {{value}}
     </option>                                        
  </select>
</div>

【讨论】:

  • 结果还是一样,是pass key
【解决方案2】:

试试这个

ng-options="value as value for (key, value) in items

你是 ng-options="key as item for (key, value) in items" 在这里你使用键作为值,这是你的答案不起作用的主要原因

您需要使用密钥对的值作为列表的值和视图面板中的相同值。

angular.module("app",[])
.controller("ctrl",function($scope){
	$scope.items = {1: "value1", 4: "value2" };
  $scope.myModel = {}
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
<select ng-model="myModel.myValue" ng-options="value as value for (key, value) in items"   ">                                     </select>
{{myModel.myValue}}
</div>

【讨论】:

    【解决方案3】:

    使用这个ng-options="value as value for (key, value) in items"。它将为 ng-model 分配值而不是键

    angular.module("app",[])
    .controller("ctrl",function($scope){
    	$scope.items = {1: "value1", 4: "value2" };
      $scope.myModel = {}
    })
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <div ng-app="app" ng-controller="ctrl">
    <select ng-model="myModel.myValue" ng-options="value as value for (key, value) in items" class="form-control">
    <option value="">Choose</option>                                          </select>
    {{myModel.myValue}}
    </div>

    【讨论】:

      【解决方案4】:

      看到这个:

      angular.module("app",[])
      .controller("ctrl",function($scope){
      	$scope.items = {1: "value1", 4: "value2" };
        $scope.myModel = "value1";
      })
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
      <div ng-app="app" ng-controller="ctrl">
      <select ng-model="myModel" ng-options="value for (key, value) in items"   ">                                     </select>
      {{myModel.myValue}}
      </div>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-11
        • 2016-02-13
        • 2015-09-11
        相关资源
        最近更新 更多