我想从下拉列表中选择国家/地区,然后通过形成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"
}
}
}
答案 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>