在填充空数组时,Oracle JET Combobox(dropdown)值不会消失

时间:2018-08-03 06:16:15

标签: knockout.js oracle-jet

Screenshots of dropdowns我正在使用Oracle JET组合框,并在某些事件发生变化时为其动态分配值。 当将空数组分配给下拉列表时,它仍显示旧的选定值(如图4所示)。

以下是我编写的代码:  HTML:

<oj-select-one id="id1"  options="[[newDropDown1]]" 
options-keys.label="name" options-keys.value="value" 
on-value-changed="[[myOnChange]]"  value="">   </oj-select-one>

<oj-select-one id="id2" options="[[newDropDown]]"  
options-keys.label="name" options-keys.value="value"      
value=""  placeholder="select .."></oj-select-one>

JS:

self.newDropDown1 =ko.observableArray([{name:'Chrome',value:1},
                                    {name:'Opera' ,value:0},
                                    {name:'Firefox' ,value:2}]);

self.newDropDown =ko.observableArray([{name:'Yes',value:1},
                                    {name:'No' ,value:0}]);

self.myOnChange = function() {
              self.newDropDown([]);
            }

2 个答案:

答案 0 :(得分:0)

将其值绑定到self.newDropDownValue之类的可观察值。

在更改事件处理程序上,将其设置为空self.newDropDownValue("")

如果您不想使用单独的变量,则可以使用组件的reset()方法。

document.getElementById('id2').reset();

以上方法将删除用户输入的值。见下面的链接

http://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.ojComboboxOne.html#reset

答案 1 :(得分:0)

我自己也有类似的问题。我找到了一种解决方法,但是还没有研究它为什么起作用。

  1. Processor failed: nil can't be coerced into Float 2018-08-24T15:40:49Z 50802 TID-ouisdv0ss ERROR: /Users/Milan/.rvm/gems/ruby-2.5.1/gems/prawn-2.2.2/lib/prawn/font/ttf.rb:246:in `/' 元素的<oj-select-one>属性绑定到value。即使它不是observableArray元素,也请使用数组。
  2. 重置时,将值设置为空数组,例如:<oj-select-many>
  3. 确保您的self.value([])元素具有<oj-select-one>属性,否则将无法正常工作。

我很确定这种行为不是故意的,但是对我有用。