1. ホーム
  2. angularjs

[解決済み] ng-change 新しい値と元の値を取得する

2022-08-18 14:39:07

質問

私はプルダウンから値を選択するためにng-optionsを使用しています。私は古い値と新しい値を比較できるようにしたいと思います。ng-changeはプルダウンの新しい値を取得するためにうまく機能しますが、どのように私は新しい値と元の値の両方を取得することができますか?

<select ng-change="updateValue(user)" ng-model="user.id" ng-options="user.id as user.name for user in users"></select> 

例えば、コントローラに「以前のユーザー名はBILL、現在のユーザー名はPHILLIPEです」と記録させたいとします。

どのように解決するのですか?

angularの{{expression}}を使えば、ng-change属性にリテラル文字列として古いユーザーまたはuser.idの値を追加することができます。

<select ng-change="updateValue(user, '{{user.id}}')" 
        ng-model="user.id" ng-options="user.id as user.name for user in users">
</select>

ngChangeでは、updateValueの第1引数は新しいユーザーの値、第2引数はselect-tagがangularによって最後に更新されたときに形成されたリテラルで、古いuser.idの値が使われます。