为什么下拉选择最后一个值

时间:2017-01-05 16:28:26

标签: angularjs angular-ngmodel ng-options

这里我尝试将数据加载到dropdownList中它的加载但是为什么默认情况下从List中选择最后一个值。

HTML

<div ng-controller="Part5Controller">
    Country : <select ng-model="CountryID" ng-options="I.CountryID as I.CountryName for I in CountryList" ng-change="GetState()">
        <option value="">Select Country</option>
    </select>
</div>

controller.Js

app.controller('Part5Controller', function ($scope, servicemard) {
    getCountrys();
    function getCountrys() {
        var xx = servicemard.getctrys();
        xx.then(function (d) {
            $scope.CountryList = d.data;
        })
    }
})

service.js

app.service('servicemard', function ($http) {
    this.getctrys = function () {
        return $http.get('/Jan/GetCountries')

      }
})

2 个答案:

答案 0 :(得分:2)

你可能想要一石二鸟。提供&#34;提示&#34;选项值使您必须处理它。可能更好的方法是预先选择和禁用它。

<div ng-controller="Part5Controller">
    Country : <select ng-model="CountryID" ng-options="I.CountryID as I.CountryName for I in CountryList" ng-change="GetState()">
        <option value="" selected disabled>Select Country</option>
    </select>
</div>

现在,默认情况下会选择提示,但实际上无法为绑定选择提示。我的经验是在绑定时使用空值而没有选择结果默认选择列表中的最后一项。

答案 1 :(得分:0)

Angular的ng-model保持目标属性的同步值和窗口小部件的状态。在您的情况下,这意味着选择CountryID等于您的控制器范围CountryID的选项。我没有看到控制器CountryID的任何定义,所以我认为你应该尝试明确。

将空选项设置为

<option value="-1">Select Country</option>

在控制器中添加CountryID初始化

$scope.CountryID = -1;