javascript - 将选择选项绑定(bind)到全局变量/数组?

标签 javascript data-binding knockout.js typescript

假设我有以下 JavaScript:

var Option = (function ()
{
        function Option(value, text)
        {
            this.value = value;
            this.text = text;
        }

        return Option;
})();

var QuestionTypes = (function ()
{
    QuestionTypes.chooseOne = new Option("ChooseOne", "Choose One");
    QuestionTypes.chooseMany = new Option("ChooseMany", "Choose Many");
    QuestionTypes.text = new Option("Text", "Text");
    QuestionTypes.all = function ()
    {
        return
        [
            QuestionTypes.chooseOne, 
            QuestionTypes.chooseMany, 
            QuestionTypes.text
        ];
    };

    return QuestionTypes;
})();

这个 HTML:

<select data-bind="value: type, options: QuestionTypes.all, optionsValue: value, optionsText: text" />

因此,select 绑定(bind)到我的“静态”变量QuestionTypes。我希望生成的 select 看起来像这样:

<select data-bind="value: type, options: QuestionTypes.all, optionsValue: value, optionsText: text">
    <option value="ChooseOne">Choose One</option>
    <option value="ChooseMany">Choose Many</option>
    <option value="Text">Text</option>
</select>

基本上,我如何绑定(bind)到全局而不是模型本身的东西?

最佳答案

您可以很好地绑定(bind)到全局变量。就像其他地方一样,它们可以在绑定(bind)中使用。

您的示例中的问题是 optionsValueoptionsText 需要是字符串。

options: QuestionTypes.all, optionsValue: 'value', optionsText: 'text'

关于javascript - 将选择选项绑定(bind)到全局变量/数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15767524/

相关文章:

.net - 如何将项目添加到 SqlDataSource 数据绑定(bind)列表

android - 如果绑定(bind)适配器提供了 setter ,请检查适配器是否正确注释以及参数类型是否匹配

JQuery 文件上传插件、Internet Explorer 和 IFrame 传输

javascript - knockout 嵌套 foreach 添加和删除不起作用

javascript - jQuery parseFloat 未按预期工作

javascript - MongoDB Mongoose 更新updatedAt字段

javascript - 在 For 循环中对异步调用进行排序 - Javascript

c++ - 在 UWP 应用程序中使用 DataTemplate 时出现问题(崩溃,未设置数据)

javascript - 我可以让 knockout 根据其他绑定(bind)中的值生成绑定(bind)吗?

javascript - 在不使用 eval() 的情况下访问串联的属性名称