就像我们使用$(document).read(function()在jquery中获取select标签的值一样,我们在Angular JS中有类似的东西吗?
点击我需要将其作为参数传递的DOM元素后,我能够获取该值
var countryId = $scope.countrySelected;
alert("country id:"+countryId);
// Ajax call for listing States
var statePromise = $http.get("ListData.php?method=state&countryid="+countryId);
$scope.states = [];
statePromise.success(function(data, status, headers, config) {
for(index in data) {
if (data[index].id) {
$scope.states.push({
id:data[index].id,
name:data[index].name
});
}
}
$scope.statelist = $scope.states;
});
statePromise.error(function(data, status, headers, config) {
alert("Loading countries failed!");
});
<tr><td>Country</td><td><select class="country" ng-model="countrySelected">
<option ng-repeat="country in countrylist" value="{{country.id}}" ng-selected="country.id">{{country.name}}</option>
但是,当我在加载时使用它时,它会提供未定义的,因为整个页面数据尚未加载。我们怎么能在这里克服?
干杯!
答案 0 :(得分:1)
如果没有看到整个代码,就很难确定可能出现的问题
在任何情况下,使用ngSelected
都不会更改附加到select
元素的模型的值。您应该在范围内设置countrySelected
属性的值
(我还建议你使用 ngOptions
指令。)
HTML:
<select ng-model="countrySelected"
ng-options="country.id as country.name for country in countryList">
</select>
JS:
$scope.countrySelected = $scope.countryList[0].id;
alert('Selected country ID: ' + $scope.countrySelected);
另请参阅此 short demo 。