knockout.js - knockout 显示选择数据

标签 knockout.js

我正在使用 knockout 来创建选择列表。每个选择项都是一个包含几个变量的对象。当选择一个项目时,我想在 span 中显示所选对象的另一个变量。

选择有效,但包含 data1: 文本的范围内没有显示任何数据。

有什么想法吗?

在这里摆弄:http://jsfiddle.net/e24zoyp6/

代码: JS

var _ViewModel = {};

$(document).ready(function () {
    setupView();
});

function setupView() {
    var Month = function (longName, shortName, value) {
        this.ShortName = shortName;
        this.MonthName = longName;
        this.MonthNumber = value;
    };

    _ViewModel = {
        // These are the initial options
        monthSelection: ko.observableArray([
            new Month("January", "Jan", 1),
            new Month("February", "Feb", 2),
            new Month("March", "Mar", 3)
        ]),
        SelectedMonth: ko.observable()
    };

    ko.applyBindings(_ViewModel);
}

HTML

<select data-bind="
    options: monthSelection, 
    optionsText: 'MonthName',
    optionsValue: 'MonthNumber',
    value: SelectedMonth,
    optionsCaption: 'Which Month?'">            
</select> 

<div data-bind="visible: SelectedMonth"> data1: 
    <span data-bind="text: SelectedMonth() ? SelectedMonth().ShortName : 'unknown'"></span>
</div>

最佳答案

您当前使用 MonthNumber 作为您的 optionsValue。这意味着您的 SelectedMonth 将仅包含月份数字,而不是整个 Month 对象,这就是您的 text 绑定(bind)不起作用的原因。

要修复此问题,只需删除 optionsValue: 'MonthNumber',,当您更改选择时,KO 将使用整个对象:

<select data-bind="
    options: monthSelection, 
    optionsText: 'MonthName',
    value: SelectedMonth,
    optionsCaption: 'Which Month?'">            
</select> 

演示 JSFiddle .

关于knockout.js - knockout 显示选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32424564/

相关文章:

javascript - 无法处理 devextreme/knockout 中的绑定(bind)

javascript - knockout : Keep track of recursion depth?

javascript - 整个页面在渲染之前等待用户确认

javascript - 使用 knockout handler 调整 div 大小并滑入其他 div

javascript - 编辑不适用于新添加的数据 - knockout

javascript - TypeScript - 使用 knockout.js 的 JavaScript 在 IE8 中不工作 - "Object doesn' t 支持此属性或方法”

javascript - 从 HashTable 存储和检索 KO ObservableArray

javascript - Knockout 3.2 - AMD 加载组件之间基于 'if' 的转换

knockout.js - 用于检查的 knockoutjs radio 整数数据绑定(bind)不起作用

javascript - 通过将 Jquery 与 knockout 绑定(bind)来更改子 div 背景