在组合淘汰代码

时间:2018-06-15 09:36:26

标签: knockout.js

当用户向表中添加新值时 - 用于组合框的可观察对象将刷新/重新填充。用户必须打开组合并找到最后输入的项目。而不是强制用户打开组合和搜索 - 如何将新条目作为选定项目?我正在考虑将该条目记忆为所谓的全局变量,并在循环中将其与刷新的可观察列表进行比较,当它匹配时 - 选择此项。但是对淘汰赛没有任何了解。

这是新项目的添加方式:

       self.addRotorSNSave = function () {
            var inputParams = {};
            inputParams.PART_ID = self.currentPumpTest().RotorPartID();
            if (inputParams.PART_ID == '--') {
                datacontext.errorNotice("Rotor PART_ID is not selected!");
                return;
            }
            inputParams.pumpModelDef = self.currentPumpTest().PumpModelDef();
            inputParams.SerialNumber = self.addRotorSN();
            inputParams.pumpPart = self.currentPumpTest().RotorPartID();                                       inputParams.CompPart = inputParams.PART_ID == datacontext.PART_ID_UNKNOWN_VALUE ? self.addRotorCompPart() : null;
            datacontext.isRotorExists(inputParams, function (exists) {
                if (exists) {
                    datacontext.errorNotice("Such serial number already exists in the database!");
                }
                else {                                                                             
                    datacontext.insertDirtyRotor(inputParams, function (data) {
                        if (data > 0) {
                            $.modal.close();
                            datacontext.successNotice("SN has been added");
                            self.loadRotorsSN(self.currentPumpTest().PumpModelDef(), self.currentPumpTest().RotorPartID(), false);  
                        }
                        else {
                            datacontext.errorNotice("Error while adding SN. Please contact a support team.");
                        }
                    });
                }
            });
        }

这是组合列表的创建方式

        self.loadRotorsSN = function (pumpModelDef, rotorPart, useCache) {
            if (useCache === undefined) { useCache = true; };
            var chacheIdx = "" + pumpModelDef + "_" + rotorPart;
            if (useCache != true || self.RotorsSNCache[chacheIdx] == null) {
                datacontext.loadRotorsSN(pumpModelDef, rotorPart, function (data) {
                    data.unshift({ Id: 0, Def: datacontext.DEFAULT_DEF });
                    self.rotorsSN(data);
                    self.RotorsSNCache[chacheIdx] = data;
                });
            }
            else {
                self.rotorsSN(self.RotorsSNCache[chacheIdx]);
            }
        }

我想在此行datacontext.successNotice(“SN已添加”)之后将inputParams.SerialNumber保存到变量中; 而不是以下代码创建一个循环来比较列表中的变量和项目:

                    data.unshift({ Id: 0, Def: datacontext.DEFAULT_DEF });

我认为到目前为止它根本没有设定选定值。

0 个答案:

没有答案