使用 Dojo 更新选项标签

Updating an options label using Dojo

我在 Dojo 中创建了一个 select 和一个可以 'rename' selected 选项的表单,但是我在更改下面列出的选项的标签时遇到了问题select.

我尝试了几种方法:

var selectDropdown = registry.byId("stateSelect");
selectDropdown.updateOption({
    value : currentId, // the existing ID to update
    label : this.new_name
});
selectDropdown.reset();

不更改标签。

selectDropdown.set("displayedValue", this.new_name);
selectDropdown.reset();

即使

也不起作用
selectDropdown.get("displayedValue");

打印出我要更改的旧标签。

编辑: 这是我创建 Select 并向其添加项目的方式...

var select = new Select({
    name : "stateSelect",
    }, "stateSelect");

select.addOption({
    value : 0,
    label : "test"});

您可以通过 .get('selectedOptions').updateOption() 的组合来实现它:

require(['dijit/form/Select'], function(Select) {
  var select = new Select({
    name : "stateSelect"
  }, "stateSelect");
  
  select.addOption({
    value : 0,
    label : "test 0"
  });
  select.addOption({
    value : 1,
    label : "test 1"
  });
  select.addOption({
    value : 2,
    label : "test 2"
  });
  
  
  changeBtn.onclick = function() {
    select.get('selectedOptions').label = (new Date()).toString();
    select.updateOption(select.get('selectedOptions'))
  }
  
});
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/resources/dojo.css"> 
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/tundra/tundra.css">
<div class="tundra">
  <div id="stateSelect"></div>
  <button id="changeBtn">change selected to current date</button>
</div>