2016-10-24 14 views
0

ご挨拶私はmd-selectとmd-optionsを使用して少し新しく、少しのロードブロックを実行しました。 md-optionの項目が選択されている場合は、それに基づいて値を変更する必要があり、trueに設定し、falseに戻していない場合は値を変更する必要があります。しかし、私はこれを行う方法で少し失われ、いくつかの方向を使用することができます。現在、私はこれを変更する関数を実行しようとしていますが、正しいオブジェクトを渡す方法を理解できないようです。複数のスワップ値を使用したMd選択とMdオプションAngularJS角材

私はmd-optionsとmd-selectを論理的に欠けていると思います。何らかの理由ng-changeについては

//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> 

答えて

0

は(私は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); 
    }); 
}); 
関連する問題