下拉菜单未使用角度js中的选定值进行选择

时间:2016-03-30 10:44:37

标签: html angularjs

我在角度js中使用ng-repeat下拉,

我的HTML代码是

<select class="form-control"  ng-model="l.Language" ng-change="languageChange($index, l.Language)" ng-options="L.ID as L.LanguageDDL for L in LanguageDDLList track by L.ID" required></select>

我的控制器是

 function getLanguagesFromLookup() {
    LanguagesService.getLanguagesfromLookup($scope.userId).success(function (data) {
        var languagesListfromLookup = data.customtableitem[0]["Lookup"];
        $scope.LanguageDDLList = [];
        for (var i = 0; i < languagesListfromLookup.length; i++) {
            var item = {
                ID: languagesListfromLookup[i].ItemID,
                LanguageDDL: languagesListfromLookup[i].Skill
            }
            $scope.LanguageDDLList.push(item);
        }
    }).error(function (data) {
        $log.info("Error occured while getting Languages Dropdown.")
    });
}

并获取默认值

$scope.Language =  $scope.LanguageDDLList[0].ID

我在这里遇到的问题是我在模型中得到的值是1,但是在下拉列表中没有选择具有值为1的选项。

任何人都可以建议问题Attached reference Image Please click to see image

2 个答案:

答案 0 :(得分:1)

您正在将ngModel设置为l.Language但设置$ scope.Language。这就是为什么没有选择下拉列表的原因。

<select class="form-control"  ng-model="l.Language" ng-change="languageChange($index, l.Language)" ng-options="L.ID as L.LanguageDDL for L in LanguageDDLList track by L.ID" required></select>

示例plunk here

更新: 由于我们已经选择了ID,因此我们已经选择了ID,因此需要使用包装ng-repeat和删除的轨道进行扩展插件。

答案 1 :(得分:1)

试试这个

     $scope.Language =  parseInt($scope.LanguageDDLList[0].ID+"");