以编程方式选择md-select选项

时间:2016-04-21 08:26:08

标签: angularjs angular-material

我有一个带有多个选择的角度材质md-select元素,我这样定义:

<md-select ng-model="selectedTypes"
           ng-change="typesChanged()"
           multiple
           ng-disabled="availableTypes.length == 0">
           <md-option ng-repeat="type in availableTypes" ng-value="{{type}}">
              {{type.displayName}}
           </md-option>
</md-select>

在加载控制器期间,我从服务器加载一系列可用类型,然后将selectedTypes设置为availableTypes[0](加载availableTypes之后),如下所示:

$scope.promise = Types.query(query, function (types) { // Types is a $resource
        $scope.availableTypes = types;
        $scope.selectedTypes = [$scope.availableTypes[0]];
});

因为selectedTypesmd-select指令的模型,所以我希望它会使第一个选择选项成为选择。但它没有用。我无法在文档中找到以md-select编程方式选择元素的任何方式。

1 个答案:

答案 0 :(得分:1)

由于您将md-selectmultiple一起使用,因此绑定到md-select的模型必须是一个数组,并且您在代码中定义了这样的数据。

$scope.selectedTypes = [$scope.availableTypes[0]];

不代表数组。您只需将您在md-option中指定的值添加到该模型中。

$scope.selectedTypes = []; //defined array
$scope.selectedTypes.push($scope.availableTypes[0]);

查看以下笔的工作示例。

http://codepen.io/next1/pen/qZKzMy

在您使用ng-value="{{type}}的代码中。由于ng-value是角度指令,因此您不应使用{{ }}。查看关于ngValue

的官方文档