md-select中的ng-model不会更新选定的值

时间:2016-08-15 14:01:32

标签: angularjs angular-material

我正在使用md-select:

<label>Type</label>
<md-select ng-model="selected_data_type">
    <md-option ng-repeat="data_type in data_types" value="{{data_type.name}}">{{data_type.name}}</md-option>
</md-select>

使用以下方式预装数据:

for (let type of getData())
   $scope.data_types.push({ name: type });

并在加载数据后设置默认值:

$scope.selected_data_type = data.type

所以现在我有一个md-select包含一些项目和一个选定的项目为默认,但是当将所选项目更改为默认以外的任何项目并按下一个事件时按钮,触发console.log($scope.selected_data_type);会提供默认选定值。那是为什么?

2 个答案:

答案 0 :(得分:3)

您提供的信息有点令人困惑。在您的问题中,您有(1)

value="{{data_type.name}}"

这是正确的。在您的CodePen示例中,您有

ng-value="{{data_type.name}}"

这是不正确的。它应该是(2)

ng-value="data_type.name"

您可以在控制台中看到CodePen与(1)和(2)一起使用。

CodePen

答案 1 :(得分:0)

而不是value使用ng-value。来自official documentation

<md-input-container>
  <md-select ng-model="someModel" placeholder="Select a state">
    <md-option ng-value="opt" ng-repeat="opt in neighborhoods2">{{ opt }}</md-option>
  </md-select>
</md-input-container>