以编程方式更新 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' };
});
我有以下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' };
});