【问题标题】:Knockout select data-bind淘汰赛选择数据绑定
【发布时间】:2018-08-06 01:02:05
【问题描述】:

我是淘汰赛新手,有一个关于使用数据绑定和“选项”绑定的问题。我想要两个下拉菜单,其中包含来自我的数据库的数据。我可以让第一个工作,但即使我以相同的方式实现第二个也不会出现。只有第一个下拉菜单会出现在页面中,其中包含所有正确的数据。但是应该与所有房间名称一起出现的第二个没有出现。但是当我删除第一个时,第二个起作用了。我显然在这里错过了一些东西,会是什么?

这是我的 HTML 代码:

<div align = "center">
    <select data-bind="options: employees, 
        optionsText: 'FullName', 
        value: Id, 
        optionsCaption: 'Select employee to login'"class = "container">
    </select>
</div>  

<div align = "center">
    <select data-bind="options: meetingRooms, 
        optionsText: 'Location', 
        value: Id, 
        optionsCaption: 'Choose room to book'" class = "container">
     </select>
</div>  

这是java脚本代码:

function BookingSystemViewModel() {
    var self = this;
    self.employees = ko.observableArray();
    self.meetingRooms = ko.observableArray();

    $.get( "/WebApi/API/Employees", function(data) {
        self.employees(data);
    });

     $.get( "/WebApi/API/MeetingRooms", function(data) {
        self.meetingRooms(data);
    });

【问题讨论】:

  • 你能给我们一个 JSFiddle 来复制这个问题,因为我没有看到任何错误的代码
  • @LiefdeWen jsfiddle.net/j6dwt9vu/1 这是代码,但数据没有出现在我的电脑上的下拉列表中。第一个下拉菜单按预期工作(我从我的数据库中获取所有数据),但第二个没有出现。但是当我删除第一个时,第二个有效,我也可以看到所有这些数据。但是当同时拥有它们时,就像某些东西被阻塞了
  • 这是一个基于您的代码的快速演示 plnkr.co/edit/VU17hMvaFKhLlMrA0EX8

标签: javascript html ajax knockout.js bootstrap-4


【解决方案1】:
<div align = "center">
    <select data-bind="options: employees, 
        optionsText: 'FullName', 
        value: Id, 
        optionsCaption: 'Select employee to login'"class = "container">
    </select>
</div>  

<div align = "center">
    <select data-bind="options: meetingRooms, 
        optionsText: 'Location', 
        value: Id, 
        optionsCaption: 'Choose room to book'" class = "container">
     </select>
</div>  

您是说应该将value 写入一个名为Id 的可观察对象,而您的视图模型中没有该对象。也许您正在寻找optionsValue,它用于定义您想要用作所选对象的值的属性。

【讨论】:

  • @Chris 如果这行得通,您应该投票感谢 Joonas 并将他的回答标记为已被未来发现与您相同问题的人所接受
猜你喜欢
  • 2013-05-04
  • 1970-01-01
  • 2013-12-30
  • 2019-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-04
相关资源
最近更新 更多