javascript - 如何使用敲除创建选择
问题描述
我正在尝试创建一个对象的选择绑定到下拉列表,但我什么也没得到。
html
<select data-bind="options: defaultConvocationVagues,
optionsText: vagueDesc,
value: selectedVague">
</select>
Javascript
$(function() {
ko.applyBindings(new ViewModel());
});
function vague(id,desc)
{
this.vagueID = ko.observable(id);
this.vagueDesc = ko.observable(desc);
}
var ViewModel = function () {
var self = this;
this.defaultConvocationVagues = ko.observableArray();
this.selectedVague = ko.observable();
self.defaultConvocationVagues.push(new Vague(1,'wave1'));
self.defaultConvocationVagues.push(new Vague(2,'wave2'));
self.defaultConvocationVagues.push(new Vague(3,'wave3'));
};
这是一个JSfiddle
解决方案
你声明function vague(id, desc)
了,但你像new Vague(1, 'wave')
. 保持外壳一致。
主要问题是你如何设置optionsText: vagueDesc
. optionsText 应设置为属性名称(作为字符串)。因此,您需要将其更改为optionsText: 'vagueDesc'
.
推荐阅读
- r - 包括出现值的所有行,否则,删除
- java - 如何使用 maven 构建 Javafx + Spring 进行生产
- mysql - 具有多个 AND OR 条件的原则
- java - 数组 B 中数组 A 中对象的访问方法
- php - 无法使用正确的用户名和密码登录php和myql
- android - Android 项目无法解析 org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.50
- python - 这是什么意思?为什么需要它?cur_row, cur_col = cur_path[-1]
- docker - 如何使用 Docker 和 DigitalOcean Spaces 部署 TensorFlow Serving
- ios - 使用 Combine 在一天中的特定时间运行代码
- aws-lambda - 在 amazon lex 中管理对话上下文