выбить пользовательские привязки как привязки multi valueAccessor - PullRequest
0 голосов
/ 03 марта 2020

Как написать пользовательский bindingHandlers, поддерживающий многозначное связывание

ko.bindingHandlers.selectssq = {
    init: function (element, valueAccessor, allBindings) {

        var value = valueAccessor();
        var _projAreaNo = value() ||"";
        $(element).cascadingDropdown({
            selectBoxes: [
                {
                    selector: '.sheng',
                    selected: _projAreaNo.substring(0, 8),
                    source: function (request, response) {
                        getArea('0001', response);
                    },
                    onChange: function (event, val, requiredValues, requirementsMet) {
                        value(val);

                        **allBindings.get('Sheng')**
                    }
                },
                {
                    selector: '.shi',
                    requires: ['.sheng'],
                    source: function (request, response) {
                        getArea(request.sheng, response, _projAreaNo.substring(0, 12));
                    },
                    onChange: function (event, val, requiredValues, requirementsMet) {
                        if (!requirementsMet) return;
                        value(val);

                    }
                },
                {
                    selector: '.qu',
                    requires: ['.sheng', '.shi'],
                    requireAll: true,
                    source: function (request, response) {
                        getArea(request.shi, response, _projAreaNo.substring(0, 16));
                    },
                    onChange: function (event, val, requiredValues, requirementsMet) {
                        if (!requirementsMet) return;
                        value(val);
                    }
                }
            ]
        });
    }
};

Я хочу связать несколько значений элемента , Мне нужно обновить value и customerData.Sheng, когда селектор: 'sheng 'onchange, обновить значение и customerData.Shi, когда селектор:' shi 'onchange, обновить значение и customerData.Qu, когда селектор:' qu 'onchange,

<div id="selarea" data-bind="selectssq:customerData.AreaNo,customerData.Sheng,customerData.Shi,customerData.Qu" >
                                    <select class="sheng form-control  col-md-3" name="sheng" id="sheng" required>
                                        <option value="">===请选择===</option>
                                    </select>
                                    <select class="shi form-control  col-md-3" name="shi" id="shi" required>
                                        <option value="">===请选择===</option>
                                    </select>
                                    <select class="qu form-control  col-md-3" name="qu" id="qu">
                                        <option value="">===请选择===</option>
                                    </select>
                                </div>

Как изменить пользовательский код bindingHandlers Обновить соответствующее значение привязки других реализаций

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...