javascript - knockout 中的选项绑定(bind)问题

标签 javascript jquery knockout.js

我正在使用 knockout.js 选择列表上的选项绑定(bind)。我创建了一个示例 fiddle :

http://jsbin.com/uzecaf/12/edit

但问题是在 ui 上没有显示值文本,而是在 ui 上显示 [object object]。我做错了什么?

编辑

JS代码

function AuthorVM(){
  this.Name = ko.observable("bla-bla");
  this.books = ko.observableArray(
    [
      new BookVM('book-1', '1'),
      new BookVM('book-2', '2'),
      new BookVM('book-3', '3'),
      new BookVM('book-4', '4')
    ]
  );
}

function BookVM(name, id){
    this.Name = name;
    this.Id = id;
}

ko.applyBindings(new AuthorVM());

标记

<label data-bind="text: Name"></label> &nbsp;&nbsp;
<select data-bind="options: books, optionsText: Name">
</select>

最佳答案

您的select 绑定(bind)错误,optionsText parameter是一个 string,因此您需要将属性名称作为字符串传递给那里。

您的绑定(bind)应如下所示:

<select data-bind="options: books, optionsText: 'Name'">

参见 Demo .

关于javascript - knockout 中的选项绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13107522/

相关文章:

javascript - CSS 问题 : Chrome adds 3px extra margin-right to text field

jquery - "clearGridData"方法没有清除分页工具栏

javascript - 将 var 设置为 .text()

javascript - 在具有 optGroup 的 select2 中选择一个值

javascript - 样式选择框下拉菜单像表格

javascript - jquery 到 Vanilla js; html标签的每个循环

javascript - 如何更改下面给出的 json 数组?

knockout.js - 如何在点击事件中访问 observableArray?

knockout.js - 手动订阅中的 beforeChange 具有奇怪的行为

javascript - Knockout-Sortable:从排序列表中排除项目