无法让Knockout JS在Adobe Air应用程序中应用绑定

时间:2014-08-13 21:48:09

标签: javascript jquery knockout.js air

我正在尝试使用带有adobe air应用程序的knockout.js库将我的HTML元素中的数据绑定到我的视图模型。构建似乎很成功,并没有得到其他人注意到的任何安全沙箱错误,但我不确定为什么绑定不成功。以下是我选择下拉列表的部分标记:

<select id="version" data-bind="options: app_versions, 
                                optionsCaption: 'Choose your app version. . .',
                                optionsText: name,
                                value: chosenVersion">

以下是我用于应用绑定的代码。 ui是使用jquery:

加载文档后声明的对象
ui = {

    init : function () {
        log("UI INIT", "Initializing user interface");
        ko.applyBindings(new this.viewModel());
    },

    viewModel : function () {
        this.app_versions = constants.versions;
        this.chosenVersion = ko.observable();
    }

}
在DOM完全加载后调用

ui.init()。所有变量都按预期记录,因此我知道数据在视图模型中。问题是选择框永远不会按预期获得元素。好像DOM没有更新。

任何让淘汰赛与Adobe AIR合作的想法?

1 个答案:

答案 0 :(得分:0)

我认为这是因为您在optionsText绑定属性中错过了引号(它应该在引号中,因为它是数组属性名称,而不是视图模型的属性)。所以只需更新你的标记:

<select id="version" data-bind="options: app_versions, 
                            optionsCaption: 'Choose your app version. . .',
                            optionsText: 'name',
                            value: chosenVersion">

请参阅demo