2017-01-09 14 views
2

私はこの問題を調査し、phpを使って解決策を見つけましたが、角度を付けませんでした。AngularJS選択要素のアクティブなオプションを異なる角度のオブジェクトの値に設定する

私のページにデータを保存するための要件の1つに、2つの別々の角度オブジェクトが同じIDを持つことが必要です。

HTML

<select class="form-control" ng-model="temp" ng-options="type as type.Name for type in Displays"> 
</select> 

AngularJS角度オブジェクトがドロップダウンで選択されている場合、私はやりたい何

$scope.Prop = Prop.data; 
$scope.Displays = Displays.data; 

がある私はDisplays.Idを割り当てる:以下のコードでありますProp.TestTemplateIdと等しくなります。

どうすればよいですか?事前に感謝します

答えて

1

簡単な方法は以下のようになりNG-変更

ビュー:

<select class="form-control" 
     ng-options="type as type.Name for type in Displays" 
     ng-change="setId(type.Id)"> 
</select> 

Ctrlキー:

$scope.setId = function(Id){ 
    $scope.Prop.TestTemplateId = Id; 
}; 

それとも、ただのビューで直接値を設定することができます

<select class="form-control" 
     ng-options="type as type.Name for type in Displays" 
     ng-change="Prop.TestTemplateId = type.Id;"> 
</select> 
3

私はドロップダウンボックスで選択した値が '$ scope.temp'にバインドされていることを理解しています。コントローラを初期化するとき、次のようにそのため、あなたは新しい値でその変数と更新「$ scope.testProp.TestTemplateId」を見ることができる:

$scope.$watch('temp', function(newType, oldType) { 
    $scope.Prop.TestTemplateId = newType.Id; 
}); 

これは、ようになります。..

  • 角度ウォッチ " $ scope.temp '
  • その値が変更されると(例えば、ドロップダウンから選択された場合)、指定された関数は新しい値(古い値)で呼び出されます。
  • ' $ scope.testProp。 TestTemplateId '
2

<select>ng-changeディレクティブを使用すると、プロパティの値を設定/更新する関数がトリガされます。選択した項目の値は、ngModelディレクティブで定義した "temp"プロパティから取得できます。

HTML:

<select class="form-control" ng-model="temp" ng-options="type as type.Name for type in Displays" ng-change="update()"> 
</select> 

JS:

$scope.update = function() { 
    // can retrieve value of selected item of "temp" ngModel property 
    $scope.Prop.TestTemplateId = $scope.temp.id; 
}; 
関連する問題