如何将国家字符串值与Angularjs中的下拉值进行比较?

时间:2016-11-15 11:41:37

标签: javascript jquery angularjs json

我想从下拉列表中选择国家/地区,然后通过形成JSON请求发送到后端。

我需要通过比较响应字符串和下拉值来显示JSON响应中的国家/地区名称。

在我的代码中显示我正在使用外部JavaScript链接的所有国家/地区。

我试过,但我无法将字符串值与下拉列表进行比较。

我也尝试过ng-option但它对我不起作用。

外部js链接为:<script src="http://iamrohit.in/lab/js/location.js"></script>

<select name="country" class="form-control1 drop countries" required  ng-model="model.country" placeholder="select" id="countryId sel1">

JSON响应=

{
  "response": {
    "service": {

    },
    "data": {
      "country": "India"
    }
  }
}

2 个答案:

答案 0 :(得分:0)

我是否理解正确 - 您有字典,并且您希望将此字典显示为“选择”控件并绑定到您的范围(在此字典中找到)对象?

如果是 - 这是解决方案。 使用'track by'进行正确的数据绑定映射。

var myApp = angular.module('myApp', []);

myApp.controller('myController', function myController($scope){
  $scope.code = {key:'B', name: 'BB'};
  
  $scope.items = [
      {key:'A', name: 'AA'},
      {key:'B', name: 'BB'},
      {key:'C', name: 'CC'}
    ];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app='myApp' ng-controller='myController'>
  <select ng-options="item.name for item in items track by item.key" ng-model="code"></select>
</div>

答案 1 :(得分:0)

  

确定。在我的注册页面中,我选择了国家,州和城市。在个人资料页面中,我将收到有关我的所有注册详细信息的回复。在那个回复中,我将国家称为{“国家”:“印度”}。我将国家/地区值分配给我的ng-model名称“$ scope.model.country”,但我无法在我的个人资料页面中查看我的国家/地区名称。相反,它显示所有国家/地区的默认下拉菜单。当我检查时,我看到“”。我的模型值与下拉值不匹配。

似乎这个解决方案也有效。也许您是异步设置范围值?所以你需要使用$ scope。$ apply(function-to-update-data)和check digest这个时刻没有处理。

有帮助吗?

var myApp = angular.module('myApp', []);

myApp.controller('myController', function myController($scope){
  $scope.code = 'Ukraine';
  $scope.items = ['Brasil', 'USA', 'Ukraine'];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app='myApp' ng-controller='myController'>
  <select ng-options="item for item in items" ng-model="code"></select>
</div>