javascript - Angularjs ng-options选择下拉列表的值

标签 javascript angularjs

我使用自定义指令在下拉列表中显示年份。这是指令的模板。

template: '<select class="form-control" ng-model="joining.Year" ng-options="year for year in Years"></select>'

Html就是这样的

<div years-dropdown range="50"></div>

Years 是一个字符串数组。年份字段在我的服务器端模型上是字符串类型。所选值已正确存储在数据库中,但是当我重新加载页面(从数据库中获取模型)时,我得到了正确的值我的 Controller ,但值未按下拉列表中的选择显示。

编辑 更重要的是,当我更改下拉列表的选择并检查 html 时,它仍然显示默认值(第一个选项具有选定属性)。但是我的范围对象已正确更新。

最佳答案

问题是 $scope.joining.YearYears[$index] 不是同一个对象引用。我不相信 ngOptions 指令使用等价逻辑。因此,这是手动执行此操作的修复方法(将其放入您的 .then() 函数中:

for(var i = 0; i < $scope.Years.length; ++i) {
    if(angular.equals($scope.Years[i], $scope.joining.Year) {
        //the fix to get years[i] if it's equal to joining.Year
        $scope.Years[i] = $scope.joining.Year;
    }
}

//finally, apply data into joining
angular.extend($scope.joining, data);

关于javascript - Angularjs ng-options选择下拉列表的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36900301/

相关文章:

javascript - 如何找到对象中第一个数组属性?

javascript 类对象,keyevent 中的方法不起作用

javascript - AngularJS 范围整数未在模板上更新

javascript - 无法删除 AngularJS 中的 #

angularjs - Beego框架如何设置Access-Control-Allow-Origin

javascript - 如何使用具有工作 ng-click 功能的 angularjs 添加 html 按钮

javascript - 关于javascript BOM问题的一个小问题

javascript - 连续选择文件上传

javascript - 从玩!到 Scalatra,模板化问题,目录结构

javascript - 将数据从工厂传输到 Controller