Md-select & Md-options 使用多个交换值 AngularJS Angular Material
Md-select & Md-options Using Multiple Swap Values AngularJS Angular Material
您好 我对使用 md-select 和 md-options 有点陌生,并且 运行 遇到了一些障碍。我需要根据 md-option 中的项目是否 selected 更改值并将其设置为 true,如果不是 return 则返回 false。但是,我对如何执行此操作有点迷茫,可以使用一些指导。目前,我正在尝试 运行 一个函数来改变它,但我似乎无法理解如何传递正确的对象。
我认为我在 md-options 和 md-select 中逻辑上遗漏了一些东西,我们将不胜感激。
//Array of objects in ng-repeat
var vm= $scope;
vm.metricsArr = [
{id: 0, name:"Aircraft Commander", valId:false},
{id: 1, name:"Flight Hours", valId: false},
{id: 2, name:"# of Sorties", valId: false}];
//Change value
vm.changeMetrics = function(passedInParam){
//nothing in here since I cant get it to work currently
};
//HTML where i pass object in to change value
<md-select multiple ng-model="i" ng-model-options= "{trackBy: '$value.id'}" ng-change="changeMetricVal(i);">
<md-option ng-value="i" ng-repeat="i in metricsArr">
{{i.name}}
</md-option>
</md-select>
出于某种原因,ng-change
没有被调用(我似乎记得以前使用 md-select
时遇到过这个问题)。你能做的是使用 $scope.$watch
- CodePen
标记
<div ng-controller="AppCtrl as vm" ng-cloak="" ng-app="MyApp">
<md-select multiple ng-model="i" ng-model-options= "{trackBy: '$value.id'}" aria-label="Select">
<md-option ng-value="i" ng-repeat="i in vm.metricsArr">
{{i.name}}
</md-option>
</md-select>
</div>
JS
angular.module('MyApp',['ngMaterial'])
.controller('AppCtrl', function($scope) {
var vm = this;
vm.metricsArr = [
{id: 0, name:"Aircraft Commander", valId:false},
{id: 1, name:"Flight Hours", valId: false},
{id: 2, name:"# of Sorties", valId: false}];
$scope.$watch("i", function (newValue) {
console.log(newValue);
});
});
您好 我对使用 md-select 和 md-options 有点陌生,并且 运行 遇到了一些障碍。我需要根据 md-option 中的项目是否 selected 更改值并将其设置为 true,如果不是 return 则返回 false。但是,我对如何执行此操作有点迷茫,可以使用一些指导。目前,我正在尝试 运行 一个函数来改变它,但我似乎无法理解如何传递正确的对象。
我认为我在 md-options 和 md-select 中逻辑上遗漏了一些东西,我们将不胜感激。
//Array of objects in ng-repeat
var vm= $scope;
vm.metricsArr = [
{id: 0, name:"Aircraft Commander", valId:false},
{id: 1, name:"Flight Hours", valId: false},
{id: 2, name:"# of Sorties", valId: false}];
//Change value
vm.changeMetrics = function(passedInParam){
//nothing in here since I cant get it to work currently
};
//HTML where i pass object in to change value
<md-select multiple ng-model="i" ng-model-options= "{trackBy: '$value.id'}" ng-change="changeMetricVal(i);">
<md-option ng-value="i" ng-repeat="i in metricsArr">
{{i.name}}
</md-option>
</md-select>
出于某种原因,ng-change
没有被调用(我似乎记得以前使用 md-select
时遇到过这个问题)。你能做的是使用 $scope.$watch
- CodePen
标记
<div ng-controller="AppCtrl as vm" ng-cloak="" ng-app="MyApp">
<md-select multiple ng-model="i" ng-model-options= "{trackBy: '$value.id'}" aria-label="Select">
<md-option ng-value="i" ng-repeat="i in vm.metricsArr">
{{i.name}}
</md-option>
</md-select>
</div>
JS
angular.module('MyApp',['ngMaterial'])
.controller('AppCtrl', function($scope) {
var vm = this;
vm.metricsArr = [
{id: 0, name:"Aircraft Commander", valId:false},
{id: 1, name:"Flight Hours", valId: false},
{id: 2, name:"# of Sorties", valId: false}];
$scope.$watch("i", function (newValue) {
console.log(newValue);
});
});