Получить свойство объекта, отличное от valueProp, в форме выбора - PullRequest
0 голосов
/ 12 октября 2018

Мне нужно получить доступ к свойству объекта выбранной опции, отличному от фактического valueProp, указанного в templateOptions моей формальной формы.Я определил поле следующим образом:

vm.model = {};

vm.fields = [
    {
        className: 'row',
        fieldGroup: [
            {
                className: 'col-xs-6',
                key: 'code',
                type: 'select2',
                templateOptions: {
                    label: 'Funder',
                    valueProp: 'code',
                    labelProp: 'name',
                    options: [
                       {code: '123', name: 'Name1', type: 'abc'},
                       {code: '456', name: 'Name2', type: 'def'},
                       {code: '789', name: 'Name3', type: 'ghi'}
                    ],
                    onChange: function($viewValue, $modelValue, $scope) {
                        for(var i = 0; i < $scope.to.options.length; i++) {
                            if($viewValue === $scope.to.options[i].code) {
                                vm.model.type = $scope.to.options[i].type;
                                break;
                            } else {
                                vm.model.type = '';
                            }
                        }
                    }
                }
            }
        ]
    }
];

Я пытаюсь избежать написания цикла for просто для получения другого свойства объекта ... Есть ли простой способ получить это type без него?

Вот бит html для загрузки формальной формы

<formly-form class="col-xs-12" model="vm.model" fields="vm.fields" form="vm.form"></formly-form>

Скажем, мы выбрали опцию Name2, я хочу иметь возможность получить тип def в vm.model.type

...