以编程方式更新 md-select

Update md-select programmatically

我有以下HTML

<md-select id="testSelect"
           ng-model="objElements" ng-change="onElementChange()"
           name="objElements" placeholder="Select Stuff">
    <md-option id="testOption"
               ng-repeat="ele in Elements"
               ng-if="ele.Completed==false"
               ng-value=ele.ID 
               ng-selected="$first">
        {{ele.Name}}
    </md-option>

Elements 使用 $http.get 请求填充并正确显示 - 我能够 select 一个元素并且 ng-change 正确触发。

如果我使用 $http.post 添加新元素,然后使用 Elements.push($scope.NewElement) 将新对象推到 Elements[],有没有办法可以将新对象设置为 'selected'元素?

我可以看到新元素已正确添加到 Elements[] 但不知道如何设置 ng-selected=NewElement

是的,只需将 objElements 设置为响应中的新元素即可。应该做的伎俩。

这里有一个很好的例子:https://material.angularjs.org/latest/api/directive/mdSelect(代码如下)。

<div ng-controller="MyCtrl">
  <md-select ng-model="selectedUser">
    <md-option ng-value="user" ng-repeat="user in users">{{ user.name }}</md-option>
  </md-select>
</div>

angular.controller('MyCtrl', function($scope) {
  $scope.users = [
    { id: 1, name: 'Bob' },
    { id: 2, name: 'Alice' },
    { id: 3, name: 'Steve' }
  ];
  $scope.selectedUser = { id: 1, name: 'Bob' };
});