如何在忽略大小写的情况下获取ngOptions以根据模型的属性值选择一个选项?

时间:2018-03-17 02:31:19

标签: angularjs

我有一个静态状态列表:

 $scope.states = [
                   { name: 'Alaska', code: 'AK'},
                   { name: 'Alabama', code: 'AL'},
                   ..........
                   ]

和下拉列表

<select name="state" ng-model="vm.customer.state" ng-options="s.name
 as s.name for s in vm.states">
   <option value=""></option>
 </select>

downdrop选择客户状态的唯一时间是客户的状态与列表中的值匹配。因此,如果该州是“阿拉斯加州”,那么阿拉斯加就会出现,但如果它是阿拉斯加州或阿拉斯加州等,那就是空白。

如何在不更改模型值/大小写的情况下使绑定大小写不敏感?

1 个答案:

答案 0 :(得分:0)

您可以$watch模型本身并对其进行格式化,使其与项目值相对应:

$scope.$watch('customer.state', function(newVal) {
  if (newVal) {
    $scope.customer.state = newVal.charAt(0).toUpperCase() + newVal.toLowerCase().slice(1)
  }
})

将阿拉巴马州更新至阿拉巴马州,将阿拉巴马更新至阿拉巴马州等。