md-select 中的 ng-model 不更新 selected 值
ng-model in a md-select doesn't update selected value
我正在使用 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,其中包含一些项目和一个 selected 项目作为 默认值,但是当更改 select将项目编辑到 default 以外的任何项目并按下事件按钮,触发 console.log($scope.selected_data_type);
给出 default selected价值。这是为什么?
使用 ng-value
而不是 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>
您提供的信息有点混乱。在你的问题中你有 (1)
value="{{data_type.name}}"
这是正确的。在您的 CodePen 示例中,您有
ng-value="{{data_type.name}}"
这是不正确的。应该是 (2)
ng-value="data_type.name"
正如您在控制台中看到的那样,您的 CodePen 适用于 (1) 和 (2)。
我正在使用 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,其中包含一些项目和一个 selected 项目作为 默认值,但是当更改 select将项目编辑到 default 以外的任何项目并按下事件按钮,触发 console.log($scope.selected_data_type);
给出 default selected价值。这是为什么?
使用 ng-value
而不是 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>
您提供的信息有点混乱。在你的问题中你有 (1)
value="{{data_type.name}}"
这是正确的。在您的 CodePen 示例中,您有
ng-value="{{data_type.name}}"
这是不正确的。应该是 (2)
ng-value="data_type.name"
正如您在控制台中看到的那样,您的 CodePen 适用于 (1) 和 (2)。