かなり単純なドロップダウンに angular-ui の select2 を使用しています。これは、コントローラーのスコープにあるデータの静的配列によって支えられています。私のコントローラーには、値が変更されたときにいくつかのアクションを実行できるように、ドロップダウンの ng-change で呼び出される関数があります。
ただし、私が見つけたのは、ng-model のプロパティが実際の JavaScript オブジェクトではなく JSON 文字列として設定されるため、ドット表記を使用してそのモデルからプロパティを取得することが不可能になることです。
変更されたドロップダウンの値を処理する関数は次のとおりです。
$scope.roleTypeChanged = function() {
//fine:
console.log('selectedType is: ', $scope.adminModel.selectedType);
// this ends up being undefined because $scope.adminModel.selectedType is a
// JSON string, rather than a js object:
console.log('selectedType.typeCode is: ', $scope.adminModel.selectedType.typeCode);
}
これが私の完全な例のプランカーです: http://plnkr.co/edit/G39iZC4f7QH05VctY8zG
ng-model にバインドされたプロパティがこれを行うのを見たことはありませんが、Angular にもかなり慣れていないため、ここで何か間違ったことをしている可能性があります。$.parseJSON() のようなことを実行して JSON 文字列をオブジェクトに戻すことは確かにできますが、必要がない限りはそうしたくありません。助けてくれてありがとう!