私は、表示テキストをフォーマットするフィルタを持つ選択を持っています。選択した値をコントローラに渡す必要がありますが、選択した項目の "id" :AngularJS:ng-options with filter and ng-change
<select
ng-model="my_field"
ng-options="q.name as (q.name | filter1 | filter2) for q in my_fields track by q.id"
ng-change="controllerMethod(my_field)"
required>
</select>
// Controller
function controllerMethod(selected_field){
console.log(selected_field);
}
$scope.controllerMethod = controllerMethod;
// Filters
angular.module('app')
.filter('filter1', function(){
return function(str_value) {
return str_value ? str_value.split('_').join(' ') : "";
}
})
.filter('filter2', function(){
return function(str_value) {
return (!!str_value) ? str_value.charAt(0).toUpperCase() + str_value.substr(1).toLowerCase() : '';
}
})
このフィルタを追加する前に、すべてのオブジェクトをコントローラに渡していました。今、それは "q.name"(ラベル)を渡しています。選択したオブジェクトのIDをどのように渡すことができますか?
ありがとうございます!
フィルタとコントローラを追加してください。 – lin
@lin okコードを追加しました –