Webix richselect продолжает сбрасываться (к прежнему значению) при отправке формы (нажатие кнопки отправки) - PullRequest
0 голосов
/ 08 июня 2019

У меня есть форма webix, интегрированная с AngularJS, и я получаю вызов за вызовом, используя эту платформу.До сих пор я придерживался этого, потому что я чувствую, что это самый подходящий вариант.Я буду рад опубликовать код, если потребуется

Но я просто хочу узнать, как и почему мой richselect (на основе AngularJS) продолжает возвращаться к исходному значению (без перезагрузки страницы) при отправке исходной формы.Кроме того, при перезагрузке страницы (после отправки) мой richselect принимает правильное значение.

Как решить эту проблему?

<div id="formcontainer"  ng-app="Risk" ng-controller="EditRiskController as ctrl">
    <get-risk></get-risk>
    <div ng-if="ctrl.initDone && ctrl.userDone" id="myeditform" layout-padding="" ng-cloak="">   
        <form id="form" name="EditRisk" role="form"
              ng-submit="ctrl.valid() && ctrl.submit()" novalidate>
             <div ng-show="ctrl.config.owner.done" config="owner"
                  webix-ui="owner" id="owner" width="200" height="30" 
                  name="owner" options="users" type="richselect" />
             <button id="submit" type="submit" class="raised primary">
               Edit Risk
             </button>
        </form>
    </div>
</div>

RichSelect Init Code

if (view == "richselect")
{
    config.value = scope.ctrl.risk[attr] || 0; 
    config.options = scope.ctrl[options];

    config.on =  {
        "onChange": function(){
            var obj = this.eventSource || this; 
            scope.ctrl.getItemValueAndValidate(obj, scope.ctrl, attr);
        }
    };
}

ПолучитьЗначение элемента (без проверки), указанное в коде инициализации config

commonFunctions.getItemValue = function(obj, scope, type, field){
    if (!obj && !obj.getValue()){
         scope[type][field] = '';   
         return;
    }
    scope[type][field] = obj.value || obj.data.value;          
}

1 Ответ

0 голосов
/ 18 июня 2019

См. Код ниже, где добавление config.value = obj.getValue(); полностью решило проблему.

            if (view == "richselect")
            {
                config.value = scope.ctrl.risk[attr];
                config.options = scope.ctrl[options];

                config.on =  {
                    "onChange": function(){
                        var obj = this.eventSource || this; 
                        scope.ctrl.getItemValueAndValidate(obj, scope.ctrl, attr);
                        config.value = obj.getValue();   //adding this fixed the problem
                    }
                }
            }
...