2016-10-26 7 views
0

vm.woExtend.ProgressNoteを選択したテキストに設定する適切な方法は何ですか?選択したオプションのテキストを取得するには、選択した変更をどのように処理するのですか?

ng-changeで選択したオプションへの参照を取得するにはどうすればよいですか?そして、それは些細なり

vm.ProgressNote = {"1": "Option1 Text", "2": "Option2 Text"}; 

私はオプション1を選択すると、私は「オプション1テキスト」あなたのコントローラで

<select ng-model="vm.woExtend.Reason" ng-change="vm.woExtend.ProgressNote='?????'"> 
    <option value="1">Option1 Text</option> 
    <option value="2">Option3 Text</option> 
    <option value="3">Option4 Text</option> 
</select> 
<textarea ng-bind="vm.woExtend.ProgressNote"></textarea> 
+0

まず最初に別のオプションに異なる値を設定してください。 –

答えて

0

これはコントローラにオプションリストが定義されている場合に達成できます。したがって、進行状況メモプロパティに値を割り当てることができます(例:vm.woExtend.ProgressNote = vm.woExtend.Reason.text)。

以下のスニペットは、説明されているソリューションを実装しています。

angular.module('myApp', []) 
 
    .controller('myController', function() { 
 
    this.ReasonOptions = [ 
 
     { value: "1", text : "Option1 Text" }, 
 
     { value: "2", text : "Option3 Text" }, 
 
     { value: "3", text : "Option4 Text" } 
 
    ]; 
 
    this.woExtend = { 
 
    \t Reason: 1, 
 
    \t ProgressNote: 'Blah bla bl!' 
 
    }; 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myController as vm"> 
 
    <select 
 
    ng-model="vm.woExtend.Reason" 
 
    ng-options="option as option.text for (key, option) in vm.ReasonOptions" 
 
    ng-change="vm.woExtend.ProgressNote = vm.woExtend.Reason.text"> 
 
    </select> 
 
    <textarea ng-bind="vm.woExtend.ProgressNote"></textarea> 
 
</div>

+0

完璧、ありがとう!!!! – monstro

0

にvm.woExtend.ProgressNoteを設定するにはのようなオブジェクトを持っています:

ng-change="vm.woExtend.ProgressNote = vm.ProgressNote[vm.woExtend.Reason]" 

でも、おそらく私はこの変更を行ってもしかし、コントローラ内にはvm.woExtend.Reasonの時計があります。

+0

ProgressNoteが既に定義されています。その文字列 – monstro

+0

名前は重要ではありません.ProgressNoteが既に存在する場合は、ProgressNoteDescriptionという名前を付けます。 – pedromarce

+0

その文字列、選択コントロールから選択したテキストに設定する必要があります – monstro

0

あなたはあなたのケースではngOptions(https://docs.angularjs.org/api/ng/directive/ngOptions

を使用することができ、あなたのコントローラを介してオブジェクトを作成します。

$scope.mySelect={} 
$scope.myOptions=[ 
    {value=1, label='Option 1 Text'}, 
    {value=2, label='Option 2 Text'}, 
    {value=3, label='Option 3 Text'} 
] 

は、その後、あなたのhtmlを持っています:

選択が行われた後

、次の方法でテキストを取得することができます:すべての

var text=$scope.mySelect.label 
関連する問題